FluentData/Context/PartialClasses/ConnectionStrings.cs

(完整代码) 1KB

using System.Configuration;

namespace FluentData
{
	public partial class DbContext : IDbContext
	{
		private void ConnectionStringInternal(string connectionString, DbProviderTypes dbProviderType, IDbProvider dbProvider)
		{
			ContextData.ConnectionString = connectionString;
			ContextData.ProviderType = dbProviderType;
			ContextData.Provider = dbProvider;
		}

		public IDbContext ConnectionString(string connectionString, DbProviderTypes dbProviderType)
		{
			ConnectionStringInternal(connectionString, dbProviderType, new DbProviderFactory().GetDbProvider(dbProviderType));
			return this;
		}

		public IDbContext ConnectionString(string connectionString, IDbProvider dbProvider)
		{
			ConnectionStringInternal(connectionString, DbProviderTypes.Custom, dbProvider);
			return this;
		}

		public IDbContext ConnectionStringName(string connectionstringName, DbProviderTypes dbProviderType)
		{
			ConnectionStringInternal(GetConnectionStringFromConfig(connectionstringName), dbProviderType, new DbProviderFactory().GetDbProvider(dbProviderType));
			return this;
		}

		public IDbContext ConnectionStringName(string connectionstringName, IDbProvider dbProvider)
		{
			ConnectionStringInternal(GetConnectionStringFromConfig(connectionstringName), DbProviderTypes.Custom, dbProvider);
			return this;
		}

		private string GetConnectionStringFromConfig(string connectionStringName)
		{
			var settings = ConfigurationManager.ConnectionStrings[connectionStringName];
			if (settings == null)
				throw new FluentDataException("A connectionstring with the specified name was not found in the .config file");
			return settings.ConnectionString;
		}
	}
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。