xpo-devexpress-dot-xpo-dot-exceptions-5c780ece.md
Occurs when a connection string or an IDbConnection object is not compatible with data store providers.
Namespace : DevExpress.Xpo.Exceptions
Assembly : DevExpress.Xpo.v25.2.dll
NuGet Package : DevExpress.Xpo
public class CannotFindAppropriateConnectionProviderException :
Exception
Public Class CannotFindAppropriateConnectionProviderException
Inherits Exception
The GetConnectionProvider method can throw a CannotFindAppropriateConnectionProvider exception if none of the data store providers (an IDataStore implementations) can accept parameter values ( connectionString or connection ).
XPO supplies a set of data store providers: Database Systems Supported by XPO. Most of them need the XpoProvider attribute in the connection string. To get a fully qualified connection string, use the GetConnectionString method of a corresponding connection provider.
A custom data store provider should implement additional static methods to support the GetConnectionProvider method. The DataStoreCreationFromConnectionDelegate and DataStoreCreationFromStringDelegate delegates describe the signature and return types of these methods. Use the RegisterDataStoreProvider method to register them.
public static IDataStore CreateProviderFromString(string connectionString, AutoCreateOption autoCreateOption,
out IDisposable[] objectsToDisposeOnDisconnect) {
IDbConnection connection = CreateConnection(connectionString);
objectsToDisposeOnDisconnect = new IDisposable[] { connection };
return CreateProviderFromConnection(connection, autoCreateOption);
}
public static IDataStore CreateProviderFromConnection(IDbConnection connection, AutoCreateOption autoCreateOption) {
return new AseClientConnectionProvider(connection, autoCreateOption);
}
static AseClientConnectionProvider() {
RegisterDataStoreProvider(XpoProviderTypeString, new DataStoreCreationFromStringDelegate(CreateProviderFromString));
RegisterDataStoreProvider(AseConnectionShortName, new DataStoreCreationFromConnectionDelegate(CreateProviderFromConnection));
}
Public Shared Function CreateProviderFromString(ByVal connectionString As String, ByVal autoCreateOption As AutoCreateOption, _
ByRef objectsToDisposeOnDisconnect() As IDisposable) As IDataStore
Dim connection As IDbConnection = CreateConnection(connectionString)
objectsToDisposeOnDisconnect = New IDisposable() { connection }
Return CreateProviderFromConnection(connection, autoCreateOption)
End Function
Public Shared Function CreateProviderFromConnection(ByVal connection As IDbConnection, ByVal autoCreateOption As AutoCreateOption) As IDataStore
Return New AseClientConnectionProvider(connection, autoCreateOption)
End Function
Shared Sub New()
RegisterDataStoreProvider(XpoProviderTypeString, New DataStoreCreationFromStringDelegate(CreateProviderFromString))
RegisterDataStoreProvider(AseConnectionShortName, New DataStoreCreationFromConnectionDelegate(CreateProviderFromConnection))
End Sub
Tip
You can download a complete example here: How to implement a custom XPO connection provider for AdoNetCore.AseClient.
Object Exception CannotFindAppropriateConnectionProviderException
See Also