Update access

This commit is contained in:
sunkaixuan 2022-02-20 16:32:32 +08:00
parent 5fdf572da9
commit 3fe74ad4ee
18 changed files with 48 additions and 87 deletions

View File

@ -96,5 +96,10 @@
<Name>SqlSugar</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Test.accdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -12,20 +12,28 @@ namespace OrmTest
/// </summary>
public class Config
{
public static string GetCurrentProjectPath
{
get
{
return Environment.CurrentDirectory.Replace(@"\bin\Debug", "");
}
}
/// <summary>
/// Account have permission to create database
/// 用有建库权限的数据库账号
/// </summary>
public static string ConnectionString = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST";
public static string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+GetCurrentProjectPath+"test.accdb";
/// <summary>
/// Account have permission to create database
/// 用有建库权限的数据库账号
/// </summary>
public static string ConnectionString2 = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST2";
public static string ConnectionString2 = ConnectionString;
/// <summary>
/// Account have permission to create database
/// 用有建库权限的数据库账号
/// </summary>
public static string ConnectionString3 = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST3";
public static string ConnectionString3 = ConnectionString;
}
}

View File

@ -68,7 +68,7 @@ namespace OrmTest
});
//If no exist create datebase
db.DbMaintenance.CreateDatabase();
//db.DbMaintenance.CreateDatabase();
//Use db query
var dt = db.Ado.GetDataTable("select 1");

Binary file not shown.

View File

@ -5,7 +5,7 @@ using System.Text;
namespace SqlSugar.Access
{
public class SqlServerCodeFirst:CodeFirstProvider
public class AccessCodeFirst : CodeFirstProvider
{
protected override string GetTableName(EntityInfo entityInfo)
{

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
namespace SqlSugar.Access
{
public class SqlServerDbBind : DbBindProvider
public class AccessDbBind : DbBindProvider
{
public override List<KeyValuePair<string, CSharpDataType>> MappingTypes
{

View File

@ -5,7 +5,7 @@ using System.Text;
namespace SqlSugar.Access
{
public class SqlServerDbFirst : DbFirstProvider
public class AccessDbFirst : DbFirstProvider
{
}
}

View File

@ -6,7 +6,7 @@ using System.Text;
namespace SqlSugar.Access
{
public class SqlServerDbMaintenance : DbMaintenanceProvider
public class AccessDbMaintenance : DbMaintenanceProvider
{
#region DML
protected override string GetDataBaseSql
@ -389,61 +389,7 @@ namespace SqlSugar.Access
/// <returns></returns>
public override bool CreateDatabase(string databaseName, string databaseDirectory = null)
{
if (databaseDirectory != null)
{
try
{
if (!FileHelper.IsExistDirectory(databaseDirectory))
{
FileHelper.CreateDirectory(databaseDirectory);
}
}
catch
{
//Databases and sites are not in the same service
}
}
var oldDatabaseName = this.Context.Ado.Connection.Database;
var connection = this.Context.CurrentConnectionConfig.ConnectionString;
connection = connection.Replace(oldDatabaseName, "master");
var newDb = new SqlSugarClient(new ConnectionConfig()
{
DbType = this.Context.CurrentConnectionConfig.DbType,
IsAutoCloseConnection = true,
ConnectionString = connection
});
if (!GetDataBaseList(newDb).Any(it => it.Equals(databaseName, StringComparison.CurrentCultureIgnoreCase)))
{
var sql = CreateDataBaseSql;
if (databaseDirectory.HasValue())
{
sql += @"on primary
(
name = N'{0}',
filename = N'{1}\{0}.mdf',
size = 10mb,
maxsize = 100mb,
filegrowth = 1mb
),
(
name = N'{0}_ndf',
filename = N'{1}\{0}.ndf',
size = 10mb,
maxsize = 100mb,
filegrowth = 10 %
)
log on
(
name = N'{0}_log',
filename = N'{1}\{0}.ldf',
size = 100mb,
maxsize = 1gb,
filegrowth = 10mb
); ";
}
newDb.Ado.ExecuteCommand(string.Format(sql, databaseName, databaseDirectory));
}
return true;
throw new Exception("Access no support CreateDatabase");
}
public override bool CreateTable(string tableName, List<DbColumnInfo> columns, bool isCreatePrimaryKey = true)
{

View File

@ -7,51 +7,51 @@ using System.Text;
namespace SqlSugar.Access
{
public class SqlServerQueryable<T>:QueryableProvider<T>
public class AccessQueryable<T>:QueryableProvider<T>
{
}
public class SqlServerQueryable<T,T2> : QueryableProvider<T,T2>
public class AccessQueryable<T,T2> : QueryableProvider<T,T2>
{
}
public class SqlServerQueryable<T, T2,T3> : QueryableProvider<T, T2,T3>
public class AccessQueryable<T, T2,T3> : QueryableProvider<T, T2,T3>
{
}
public class SqlServerQueryable<T, T2,T3,T4> : QueryableProvider<T, T2,T3,T4>
public class AccessQueryable<T, T2,T3,T4> : QueryableProvider<T, T2,T3,T4>
{
}
public class SqlServerQueryable<T, T2, T3, T4,T5> : QueryableProvider<T, T2, T3, T4,T5>
public class AccessQueryable<T, T2, T3, T4,T5> : QueryableProvider<T, T2, T3, T4,T5>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5,T6> : QueryableProvider<T, T2, T3, T4, T5,T6>
public class AccessQueryable<T, T2, T3, T4, T5,T6> : QueryableProvider<T, T2, T3, T4, T5,T6>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6,T7> : QueryableProvider<T, T2, T3, T4, T5, T6,T7>
public class AccessQueryable<T, T2, T3, T4, T5, T6,T7> : QueryableProvider<T, T2, T3, T4, T5, T6,T7>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6, T7,T8> : QueryableProvider<T, T2, T3, T4, T5, T6, T7,T8>
public class AccessQueryable<T, T2, T3, T4, T5, T6, T7,T8> : QueryableProvider<T, T2, T3, T4, T5, T6, T7,T8>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9>
public class AccessQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>
public class AccessQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
public class AccessQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
{
}
public class SqlServerQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
public class AccessQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> : QueryableProvider<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
{
}

View File

@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerBlukCopy
public class AccessBlukCopy
{
internal List<IGrouping<int, DbColumnInfo>> DbColumnInfoList { get; set; }
internal SqlSugarProvider Context { get; set; }

View File

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerBuilder : SqlBuilderProvider
public class AccessBuilder : SqlBuilderProvider
{
public override string SqlTranslationLeft { get { return "["; } }
public override string SqlTranslationRight { get { return "]"; } }

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerDeleteBuilder: DeleteBuilder
public class AccessDeleteBuilder : DeleteBuilder
{
}

View File

@ -9,16 +9,16 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public partial class SqlServerExpressionContext : ExpressionContext, ILambdaExpressions
public partial class AccessExpressionContext : ExpressionContext, ILambdaExpressions
{
public SqlSugarProvider Context { get; set; }
public SqlServerExpressionContext()
public AccessExpressionContext()
{
base.DbMehtods = new SqlServerMethod();
}
}
public partial class SqlServerMethod : DefaultDbMethod, IDbMethods
public partial class AccessMethod : DefaultDbMethod, IDbMethods
{
public override string HasValue(MethodCallExpressionModel model)
{

View File

@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerFastBuilder:FastBuilder,IFastBuilder
public class AccessFastBuilder : FastBuilder,IFastBuilder
{
public async Task<int> ExecuteBulkCopyAsync(DataTable dt)
{

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerInsertBuilder:InsertBuilder
public class AccessInsertBuilder : InsertBuilder
{
public override string ToSqlString()
{

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerQueryBuilder: QueryBuilder
public class AccessQueryBuilder : QueryBuilder
{
public override string SqlTemplate
{

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace SqlSugar.Access
{
public class SqlServerUpdateBuilder: UpdateBuilder
public class AccessUpdateBuilder : UpdateBuilder
{
}
}

View File

@ -12,6 +12,8 @@ namespace SqlSugar
static Assembly assembly = Assembly.GetExecutingAssembly();
static Dictionary<string, Type> typeCache = new Dictionary<string, Type>();
public static string CustomTypeName = "";
public static string CustomDbName = "";
public static string CustomNamespace = "";
public static bool NoCache = false;
public static void RemoveCache()
@ -309,11 +311,11 @@ namespace SqlSugar
}
else if (type == "Access")
{
return "SqlSugar.MySqlConnector.Access" + name;
return "SqlSugar.Access.Access" + name;
}
else if (type == "Custom")
{
return "SqlSugar.MySqlConnector.MySql" + name;
return CustomNamespace + "."+CustomDbName + name;
}
else
{