本文整理汇总了C#中System.Data.Common.DbProviderManifest类的典型用法代码示例。如果您正苦于以下问题:C# DbProviderManifest类的具体用法?C# DbProviderManifest怎么用?C# DbProviderManifest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DbProviderManifest类属于System.Data.Common命名空间,在下文中一共展示了DbProviderManifest类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: CreateDbCommandDefinition
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, System.Data.Common.CommandTrees.DbCommandTree commandTree)
{
if (providerManifest == null)
throw new ArgumentNullException("providerManifest");
if (commandTree == null)
throw new ArgumentNullException("commandTree");
NuoDbCommand command = new NuoDbCommand(PrepareTypeCoercions(commandTree));
List<DbParameter> parameters;
CommandType commandType;
command.CommandText = SqlGenerator.GenerateSql(commandTree, out parameters, out commandType);
command.CommandType = commandType;
// Get the function (if any) implemented by the command tree since this influences our interpretation of parameters
EdmFunction function = null;
if (commandTree is DbFunctionCommandTree)
{
function = ((DbFunctionCommandTree)commandTree).EdmFunction;
}
foreach (KeyValuePair<string, TypeUsage> queryParameter in commandTree.Parameters)
{
NuoDbParameter parameter;
// Use the corresponding function parameter TypeUsage where available (currently, the SSDL facets and
// type trump user-defined facets and type in the EntityCommand).
FunctionParameter functionParameter;
if (null != function && function.Parameters.TryGetValue(queryParameter.Key, false, out functionParameter))
{
parameter = CreateSqlParameter(functionParameter.Name, functionParameter.TypeUsage, functionParameter.Mode, DBNull.Value);
}
else
{
parameter = CreateSqlParameter(queryParameter.Key, queryParameter.Value, ParameterMode.In, DBNull.Value);
}
command.Parameters.Add(parameter);
}
// Now add parameters added as part of SQL gen (note: this feature is only safe for DML SQL gen which
// does not support user parameters, where there is no risk of name collision)
if (null != parameters && 0 < parameters.Count)
{
if (!(commandTree is DbInsertCommandTree) &&
!(commandTree is DbUpdateCommandTree) &&
!(commandTree is DbDeleteCommandTree))
{
throw new InvalidOperationException("SqlGenParametersNotPermitted");
}
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
return CreateCommandDefinition(command);
}
开发者ID:biegomar,项目名称:nuodb-dotnet,代码行数:60,代码来源:NuoDbProviderServices.cs
示例2: LegacyDbProviderManifestWrapperTests
static LegacyDbProviderManifestWrapperTests()
{
LegacyProviderManifest =
((Legacy.DbProviderServices)
((IServiceProvider)Legacy.DbProviderFactories.GetFactory("System.Data.SqlClient"))
.GetService(typeof(Legacy.DbProviderServices)))
.GetProviderManifest("2008");
ProviderManifestWrapper = new LegacyDbProviderManifestWrapper(LegacyProviderManifest);
const string emptyCsdl =
@"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""dummy"" />";
using (var reader = XmlReader.Create(new StringReader(emptyCsdl)))
{
EdmPrimitiveTypes =
new EdmItemCollection(new[] { reader }).GetItems<PrimitiveType>().ToDictionary(t => t.Name, t => t);
}
using (var reader = XmlReader.Create(new StringReader(emptyCsdl)))
{
LegacyEdmPrimitiveTypes =
new LegacyMetadata.EdmItemCollection(new[] { reader })
.GetItems<LegacyMetadata.PrimitiveType>()
.ToDictionary(t => t.Name, t => t);
}
}
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:27,代码来源:LegacyDbProviderManifestWrapperTests.cs
示例3: CreateDbCommandDefinition
/// <summary>
/// create the database command definition.
/// </summary>
/// <param name="providerManifest">The provider manifest.</param>
/// <param name="commandTree">The command tree.</param>
/// <returns>the command definition.</returns>
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, System.Data.Common.CommandTrees.DbCommandTree commandTree)
{
var cmdDef = _wrapped.CreateCommandDefinition(providerManifest, commandTree);
var cmd = cmdDef.CreateCommand();
Debug.Assert(cmd != null, "cmd != null");
return CreateCommandDefinition(new ProfiledDbCommand(cmd, cmd.Connection, _profiler));
}
开发者ID:CurufinweU,项目名称:dotnet,代码行数:13,代码来源:ProfiledDbProviderServices.cs
示例4: CreateDbCommandDefinition
/// <summary>
/// Create a Command Definition object, given the connection and command tree
/// </summary>
/// <param name="connection">connection to the underlying provider</param>
/// <param name="commandTree">command tree for the statement</param>
/// <returns>an exectable command definition object</returns>
/// <exception cref="ArgumentNullException">connection and commandTree arguments must not be null</exception>
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) {
EntityUtil.CheckArgumentNull(providerManifest, "providerManifest");
EntityUtil.CheckArgumentNull(commandTree, "commandTree");
StoreItemCollection storeMetadata = (StoreItemCollection)commandTree.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
return this.CreateCommandDefinition(storeMetadata.StoreProviderFactory, commandTree);
}
开发者ID:uQr,项目名称:referencesource,代码行数:14,代码来源:EntityProviderServices.cs
示例5: CreateProviderManifest
/// <summary>
/// Creates the provider manifest wrapper.
/// </summary>
/// <param name="providerInvariantName">Provider invariant name.</param>
/// <param name="providerManifest">The provider manifest to be wrapped.</param>
/// <returns><see cref="DbProviderManifest"/> wrapper for given provider invariant name wrapping given provider manifest.</returns>
public virtual DbProviderManifest CreateProviderManifest(string providerInvariantName, DbProviderManifest providerManifest)
{
return new DbProviderManifestWrapper(
ProviderInvariantName,
providerInvariantName,
providerManifest);
}
开发者ID:matteomigliore,项目名称:HSDK,代码行数:13,代码来源:DbProviderServicesBase.cs
示例6: CreateDbCommandDefinition
/// <summary>
/// Create a Command Definition object, given the connection and command tree
/// </summary>
/// <param name="providerManifest">provider manifest that was determined from metadata</param>
/// <param name="commandTree">command tree for the statement</param>
/// <returns>an exectable command definition object</returns>
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) {
Debug.Assert(providerManifest != null, "CreateCommandDefinition passed null provider manifest to CreateDbCommandDefinition?");
Debug.Assert(commandTree != null, "CreateCommandDefinition did not validate commandTree argument?");
DbCommand prototype = CreateCommand(providerManifest, commandTree);
DbCommandDefinition result = this.CreateCommandDefinition(prototype);
return result;
}
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:14,代码来源:SqlProviderServices.cs
示例7: PrimitiveType
/// <summary>
/// The constructor for PrimitiveType, it takes in a CLR type containing the identity information
/// </summary>
/// <param name="clrType">The CLR type object for this primitive type</param>
/// <param name="baseType">The base type for this primitive type</param>
/// <param name="providerManifest">The ProviderManifest of the provider of this type</param>
internal PrimitiveType(Type clrType,
PrimitiveType baseType,
DbProviderManifest providerManifest)
: this(EntityUtil.GenericCheckArgumentNull(clrType, "clrType").Name, clrType.Namespace,
DataSpace.OSpace, baseType, providerManifest)
{
Debug.Assert(clrType == ClrEquivalentType, "not equivalent to ClrEquivalentType");
}
开发者ID:krytht,项目名称:DotNetReferenceSource,代码行数:14,代码来源:PrimitiveType.cs
示例8: CreateDbCommandDefinition
/// <summary>
/// Creates the command definition wrapper for a given provider manifest and command tree.
/// </summary>
/// <param name="providerManifest">The provider manifest.</param>
/// <param name="commandTree">The command tree.</param>
/// <returns><see cref="DbCommandDefinition"/> object.</returns>
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
{
var wrapperManifest = (DbProviderManifestWrapper)providerManifest;
var createDbCommandDefinitionFunction = this.GetCreateDbCommandDefinitionFunction(wrapperManifest.WrappedProviderManifestInvariantName);
DbCommandDefinition definition = createDbCommandDefinitionFunction(wrapperManifest.WrappedProviderManifest, commandTree);
return this.CreateCommandDefinitionWrapper(definition, commandTree);
}
开发者ID:gyb333,项目名称:Learning,代码行数:14,代码来源:DbProviderServicesBase.cs
示例9: DbProviderManifestWrapper
/// <summary>
/// Initializes a new instance of the DbProviderManifestWrapper class.
/// </summary>
/// <param name="wrapperProviderInvariantName">Wrapper provider invariant name.</param>
/// <param name="providerInvariantName">Provider invariant name.</param>
/// <param name="wrappedProviderManifest">The wrapped provider manifest.</param>
public DbProviderManifestWrapper(
string wrapperProviderInvariantName,
string providerInvariantName,
DbProviderManifest wrappedProviderManifest)
{
this.wrapperProviderInvariantName = wrapperProviderInvariantName;
this.providerInvariantName = providerInvariantName;
this.wrappedProviderManifest = wrappedProviderManifest;
}
开发者ID:matteomigliore,项目名称:HSDK,代码行数:15,代码来源:DbProviderManifestWrapper.cs
示例10: CreateDbCommandDefinition
protected override DbCommandDefinition CreateDbCommandDefinition(
DbProviderManifest providerManifest, DbCommandTree commandTree)
{
if (commandTree == null)
throw new ArgumentNullException("commandTree");
SqlGenerator generator = null;
if (commandTree is DbQueryCommandTree)
generator = new SelectGenerator();
else if (commandTree is DbInsertCommandTree)
generator = new InsertGenerator();
else if (commandTree is DbUpdateCommandTree)
generator = new UpdateGenerator();
else if (commandTree is DbDeleteCommandTree)
generator = new DeleteGenerator();
else if (commandTree is DbFunctionCommandTree)
generator = new FunctionGenerator();
string sql = generator.GenerateSQL(commandTree);
EFMySqlCommand cmd = new EFMySqlCommand();
cmd.CommandText = sql;
if (generator is FunctionGenerator)
cmd.CommandType = (generator as FunctionGenerator).CommandType;
SetExpectedTypes(commandTree, cmd);
EdmFunction function = null;
if (commandTree is DbFunctionCommandTree)
function = (commandTree as DbFunctionCommandTree).EdmFunction;
// Now make sure we populate the command's parameters from the CQT's parameters:
foreach (KeyValuePair<string, TypeUsage> queryParameter in commandTree.Parameters)
{
DbParameter parameter = cmd.CreateParameter();
parameter.ParameterName = queryParameter.Key;
parameter.Direction = ParameterDirection.Input;
parameter.DbType = Metadata.GetDbType(queryParameter.Value);
FunctionParameter funcParam;
if (function != null &&
function.Parameters.TryGetValue(queryParameter.Key, false, out funcParam))
{
parameter.ParameterName = funcParam.Name;
parameter.Direction = Metadata.ModeToDirection(funcParam.Mode);
parameter.DbType = Metadata.GetDbType(funcParam.TypeUsage);
}
cmd.Parameters.Add(parameter);
}
// Now add parameters added as part of SQL gen
foreach (DbParameter p in generator.Parameters)
cmd.Parameters.Add(p);
return CreateCommandDefinition(cmd);
}
开发者ID:noahvans,项目名称:mariadb-connector-net,代码行数:56,代码来源:ProviderServices.cs
示例11: LegacyDbProviderManifestWrapper
public LegacyDbProviderManifestWrapper(Legacy.DbProviderManifest wrappedProviderManifest)
{
Debug.Assert(wrappedProviderManifest != null, "wrappedProviderManifest != null");
_wrappedProviderManifest = wrappedProviderManifest;
_legacyStoreTypes = _wrappedProviderManifest.GetStoreTypes().ToArray();
_storeTypes =
new ReadOnlyCollection<PrimitiveType>(
_legacyStoreTypes.Select(t => ConvertFromLegacyStoreEdmType(t, this)).ToList());
}
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:11,代码来源:LegacyDbProviderManifestWrapper.cs
示例12: StoreItemCollection
// used by EntityStoreSchemaGenerator to start with an empty (primitive types only) StoreItemCollection and
// add types discovered from the database
internal StoreItemCollection(DbProviderFactory factory, DbProviderManifest manifest, string providerManifestToken)
: base(DataSpace.SSpace)
{
Debug.Assert(factory != null, "factory is null");
Debug.Assert(manifest != null, "manifest is null");
_providerFactory = factory;
_providerManifest = manifest;
_providerManifestToken = providerManifestToken;
_cachedCTypeFunction = new Memoizer<EdmFunction, EdmFunction>(ConvertFunctionSignatureToCType, null);
LoadProviderManifest(_providerManifest, true /*checkForSystemNamespace*/);
}
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:14,代码来源:StoreItemCollection.cs
示例13: GetProviderInfo
public static DbProviderInfo GetProviderInfo(
this DbConnection connection, out DbProviderManifest providerManifest)
{
//Contract.Requires(connection != null);
var providerServices = DbProviderServices.GetProviderServices(connection);
var providerManifestToken = providerServices.GetProviderManifestTokenChecked(connection);
var providerInfo = new DbProviderInfo(connection.GetProviderInvariantName(), providerManifestToken);
providerManifest = providerServices.GetProviderManifest(providerManifestToken);
return providerInfo;
}
开发者ID:jimmy00784,项目名称:entityframework,代码行数:13,代码来源:DbConnectionExtensions.cs
示例14: Configure
internal override void Configure(
IEnumerable<Tuple<DbEdmPropertyMapping, DbTableMetadata>> propertyMappings,
DbProviderManifest providerManifest,
bool allowOverride = false)
{
base.Configure(propertyMappings, providerManifest, allowOverride);
propertyMappings
.Each(
pm =>
{
if (IsRowVersion != null)
{
pm.Item1.Column.Facets.MaxLength = null;
}
});
}
开发者ID:jimmy00784,项目名称:entityframework,代码行数:17,代码来源:BinaryPropertyConfiguration.cs
示例15: CreateCommandDefinition
/// <summary>
/// Create a Command Definition object given a command tree.
/// </summary>
/// <param name="commandTree">command tree for the statement</param>
/// <returns>an exectable command definition object</returns>
/// <remarks>
/// This method simply delegates to the provider's implementation of CreateDbCommandDefinition.
/// </remarks>
public DbCommandDefinition CreateCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
{
try
{
return CreateDbCommandDefinition(providerManifest, commandTree);
}
catch (ProviderIncompatibleException)
{
throw;
}
catch (Exception e)
{
if (EntityUtil.IsCatchableExceptionType(e))
{
throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotCreateACommandDefinition, e);
}
throw;
}
}
开发者ID:uQr,项目名称:referencesource,代码行数:27,代码来源:DbProviderServices.cs
示例16: CreateCommandDefinition
/// <summary>
/// Create a Command Definition object given a command tree.
/// </summary>
/// <param name="commandTree">command tree for the statement</param>
/// <returns>an executable command definition object</returns>
/// <remarks>
/// This method simply delegates to the provider's implementation of CreateDbCommandDefinition.
/// </remarks>
public DbCommandDefinition CreateCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
{
//Contract.Requires(providerManifest != null);
//Contract.Requires(commandTree != null);
try
{
return CreateDbCommandDefinition(providerManifest, commandTree);
}
catch (ProviderIncompatibleException)
{
throw;
}
catch (Exception e)
{
if (e.IsCatchableExceptionType())
{
throw new ProviderIncompatibleException(Strings.ProviderDidNotCreateACommandDefinition, e);
}
throw;
}
}
开发者ID:jimmy00784,项目名称:entityframework,代码行数:30,代码来源:DbProviderServices.cs
示例17: IsSystemNamespace
internal static bool IsSystemNamespace(DbProviderManifest manifest, string namespaceName)
{
if (manifest == MetadataItem.EdmProviderManifest)
{
return (namespaceName == EdmConstants.TransientNamespace ||
namespaceName == EdmConstants.EdmNamespace ||
namespaceName == EdmConstants.ClrPrimitiveTypeNamespace);
}
else
{
return (namespaceName == EdmConstants.TransientNamespace ||
namespaceName == EdmConstants.EdmNamespace ||
namespaceName == EdmConstants.ClrPrimitiveTypeNamespace ||
(manifest != null && namespaceName == manifest.NamespaceName));
}
}
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:16,代码来源:EdmItemCollection.cs
示例18: LoadItems
/// <summary>
/// Load stuff from xml readers - this now includes XmlReader instances created over embedded
/// resources. See the remarks section below for some useful information.
/// </summary>
/// <param name="xmlReaders">A list of XmlReader instances</param>
/// <param name="dataModelOption">whether this is a entity data model or provider data model</param>
/// <param name="providerManifest">provider manifest from which the primitive type definition comes from</param>
/// <param name="itemCollection">item collection to add the item after loading</param>
/// <param name="computeFilePaths">Indicates whether the method should bother with the file paths; see remarks below</param>
/// <remarks>
/// In order to accommodate XmlReaders over artifacts embedded as resources in assemblies, the
/// notion of a filepath had to be abstracted into a URI. In reality, however, a res:// URI that
/// points to an embedded resource does not constitute a valid URI (i.e., one that can be parsed
/// by the System.Uri class in the .NET framework). In such cases, we need to supply a list of
/// "filepaths" (which includes res:// URIs), instead of having this method create the collection.
/// This distinction is made by setting the 'computeFilePaths' flags appropriately.
/// </remarks>
internal static IList<EdmSchemaError> LoadItems(IEnumerable<XmlReader> xmlReaders,
IEnumerable<string> sourceFilePaths,
SchemaDataModelOption dataModelOption,
DbProviderManifest providerManifest,
ItemCollection itemCollection,
bool throwOnError)
{
IList<Schema> schemaCollection = null;
// Parse and validate all the schemas - since we support using now,
// we need to parse them as a group
var errorCollection = SchemaManager.ParseAndValidate(xmlReaders, sourceFilePaths,
dataModelOption, providerManifest, out schemaCollection);
// Try to initialize the metadata if there are no errors
if (MetadataHelper.CheckIfAllErrorsAreWarnings(errorCollection))
{
List<EdmSchemaError> errors = LoadItems(providerManifest, schemaCollection, itemCollection);
foreach (var error in errors)
{
errorCollection.Add(error);
}
}
if (!MetadataHelper.CheckIfAllErrorsAreWarnings(errorCollection) && throwOnError)
{
//Future Enhancement: if there is an error, we throw exception with error and warnings.
//Otherwise the user has no clue to know about warnings.
throw EntityUtil.InvalidSchemaEncountered(Helper.CombineErrorMessage(errorCollection));
}
return errorCollection;
}
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:48,代码来源:EdmItemCollection.cs
示例19: CreateDbCommandDefinition
protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest manifest, DbCommandTree commandTree)
{
DbCommand prototype = CreateCommand(manifest, commandTree);
DbCommandDefinition result = this.CreateCommandDefinition(prototype);
return result;
}
开发者ID:jesusico83,项目名称:Telerik,代码行数:6,代码来源:ProviderServices.cs
示例20: CreateCommand
/// <summary>
/// Create a SampleCommand object, given the provider manifest and command tree
/// </summary>
private DbCommand CreateCommand(DbProviderManifest manifest, DbCommandTree commandTree)
{
if (manifest == null)
throw new ArgumentNullException("manifest");
if (commandTree == null)
throw new ArgumentNullException("commandTree");
SampleProviderManifest sampleManifest = (manifest as SampleProviderManifest);
if (sampleManifest == null)
{
throw new ArgumentException("The provider manifest given is not of type 'SampleProviderManifest'.");
}
StoreVersion version = sampleManifest.Version;
SampleCommand command = new SampleCommand();
List<DbParameter> parameters;
CommandType commandType;
command.CommandText = SqlGenerator.GenerateSql(commandTree, version, out parameters, out commandType);
command.CommandType = commandType;
if (command.CommandType == CommandType.Text)
{
command.CommandText += Environment.NewLine + Environment.NewLine + "-- provider: " + this.GetType().Assembly.FullName;
}
// Get the function (if any) implemented by the command tree since this influences our interpretation of parameters
EdmFunction function = null;
if (commandTree is DbFunctionCommandTree)
{
function = ((DbFunctionCommandTree)commandTree).EdmFunction;
}
// Now make sure we populate the command's parameters from the CQT's parameters:
foreach (KeyValuePair<string, TypeUsage> queryParameter in commandTree.Parameters)
{
SqlParameter parameter;
// Use the corresponding function parameter TypeUsage where available (currently, the SSDL facets and
// type trump user-defined facets and type in the EntityCommand).
FunctionParameter functionParameter;
if (null != function && function.Parameters.TryGetValue(queryParameter.Key, false, out functionParameter))
{
parameter = CreateSqlParameter(functionParameter.Name, functionParameter.TypeUsage, functionParameter.Mode, DBNull.Value);
}
else
{
parameter = CreateSqlParameter(queryParameter.Key, queryParameter.Value, ParameterMode.In, DBNull.Value);
}
command.Parameters.Add(parameter);
}
// Now add parameters added as part of SQL gen (note: this feature is only safe for DML SQL gen which
// does not support user parameters, where there is no risk of name collision)
if (null != parameters && 0 < parameters.Count)
{
if (!(commandTree is DbInsertCommandTree) &&
!(commandTree is DbUpdateCommandTree) &&
!(commandTree is DbDeleteCommandTree))
{
throw new InvalidOperationException("SqlGenParametersNotPermitted");
}
foreach (DbParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
return command;
}
开发者ID:jesusico83,项目名称:Telerik,代码行数:78,代码来源:ProviderServices.cs
注:本文中的System.Data.Common.DbProviderManifest类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论