// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
namespace System.Data.Entity.Infrastructure
{
using System.Data.Common;
///
/// 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.
///
public interface IDbConnectionFactory
{
///
/// Creates a connection based on the given database name or connection string.
///
/// The database name or connection string.
/// An initialized DbConnection.
DbConnection CreateConnection(string nameOrConnectionString);
}
}