Files
Umbraco-CMS/components/SQLCE4Umbraco/SqlCeContextGuardian.cs
2011-06-17 09:20:59 -02:00

42 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.SqlServerCe;
using System.Linq;
using System.Text;
namespace SQLCE4Umbraco
{
public static class SqlCeContextGuardian
{
private static SqlCeConnection _conn;
private static object objLock = new object();
// Awesome SQL CE 4 speed improvement by Erik Ejskov Jensen - SQL CE 4 MVP
// It's not an issue with SQL CE 4 that we never close the connection
public static SqlCeConnection Open(string connectionString)
{
var connectionStringBuilder = new DbConnectionStringBuilder();
try
{
connectionStringBuilder.ConnectionString = connectionString;
}
catch (Exception ex)
{
throw new ArgumentException("Bad connection string.", "connectionString", ex);
}
connectionStringBuilder.Remove("datalayer");
lock (objLock)
{
if (_conn != null)
throw new InvalidOperationException("Already opened");
_conn = new SqlCeConnection(connectionStringBuilder.ConnectionString);
_conn.Open();
}
return _conn;
}
}
}