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> <Name>SqlSugar</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="Test.accdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -12,20 +12,28 @@ namespace OrmTest
/// </summary> /// </summary>
public class Config public class Config
{ {
public static string GetCurrentProjectPath
{
get
{
return Environment.CurrentDirectory.Replace(@"\bin\Debug", "");
}
}
/// <summary> /// <summary>
/// Account have permission to create database /// Account have permission to create database
/// 用有建库权限的数据库账号 /// 用有建库权限的数据库账号
/// </summary> /// </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> /// <summary>
/// Account have permission to create database /// Account have permission to create database
/// 用有建库权限的数据库账号 /// 用有建库权限的数据库账号
/// </summary> /// </summary>
public static string ConnectionString2 = "server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST2"; public static string ConnectionString2 = ConnectionString;
/// <summary> /// <summary>
/// Account have permission to create database /// Account have permission to create database
/// 用有建库权限的数据库账号 /// 用有建库权限的数据库账号
/// </summary> /// </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 //If no exist create datebase
db.DbMaintenance.CreateDatabase(); //db.DbMaintenance.CreateDatabase();
//Use db query //Use db query
var dt = db.Ado.GetDataTable("select 1"); var dt = db.Ado.GetDataTable("select 1");

Binary file not shown.

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@ using System.Text;
namespace SqlSugar.Access namespace SqlSugar.Access
{ {
public class SqlServerDbMaintenance : DbMaintenanceProvider public class AccessDbMaintenance : DbMaintenanceProvider
{ {
#region DML #region DML
protected override string GetDataBaseSql protected override string GetDataBaseSql
@ -389,61 +389,7 @@ namespace SqlSugar.Access
/// <returns></returns> /// <returns></returns>
public override bool CreateDatabase(string databaseName, string databaseDirectory = null) public override bool CreateDatabase(string databaseName, string databaseDirectory = null)
{ {
if (databaseDirectory != null) throw new Exception("Access no support CreateDatabase");
{
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;
} }
public override bool CreateTable(string tableName, List<DbColumnInfo> columns, bool isCreatePrimaryKey = true) public override bool CreateTable(string tableName, List<DbColumnInfo> columns, bool isCreatePrimaryKey = true)
{ {

View File

@ -7,51 +7,51 @@ using System.Text;
namespace SqlSugar.Access 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 namespace SqlSugar.Access
{ {
public class SqlServerBlukCopy public class AccessBlukCopy
{ {
internal List<IGrouping<int, DbColumnInfo>> DbColumnInfoList { get; set; } internal List<IGrouping<int, DbColumnInfo>> DbColumnInfoList { get; set; }
internal SqlSugarProvider Context { get; set; } internal SqlSugarProvider Context { get; set; }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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