Oracle CodeFirst

This commit is contained in:
sunkaixuan 2018-11-25 20:04:59 +08:00
parent 22db10c9c0
commit 5853196116
4 changed files with 50 additions and 12 deletions

View File

@ -38,7 +38,7 @@ namespace OrmTest.Demo
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{ {
ConnectionString = Config.ConnectionString, ConnectionString = Config.ConnectionString,
DbType = DbType.SqlServer, DbType = DbType.Oracle,
IsAutoCloseConnection = true, IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute InitKeyType = InitKeyType.Attribute
}); });
@ -47,7 +47,7 @@ namespace OrmTest.Demo
//db.CodeFirst.BackupTable().InitTables(typeof(CodeTable),typeof(CodeTable2)); //db.CodeFirst.BackupTable().InitTables(typeof(CodeTable),typeof(CodeTable2));
//No backup table //No backup table
db.CodeFirst.InitTables(typeof(CodeTable),typeof(CodeTable2)); db.CodeFirst.InitTables(typeof(CodeTable));
} }
} }
} }

View File

@ -41,12 +41,12 @@ namespace OrmTest
OrmTest.Demo.Query.Init(); OrmTest.Demo.Query.Init();
OrmTest.Demo.Insert.Init(); OrmTest.Demo.Insert.Init();
// OrmTest.Demo.Delete.Init(); // OrmTest.Demo.Delete.Init();
OrmTest.Demo.Update.Init(); //OrmTest.Demo.Update.Init();
OrmTest.Demo.DbFirst.Init(); //OrmTest.Demo.DbFirst.Init();
OrmTest.Demo.JoinSql.Init(); //OrmTest.Demo.JoinSql.Init();
OrmTest.Demo.Filter.Init(); //OrmTest.Demo.Filter.Init();
OrmTest.Demo.ComplexModel.Init(); //OrmTest.Demo.ComplexModel.Init();
//OrmTest.Demo.CodeFirst.Init(); OrmTest.Demo.CodeFirst.Init();
} }
} }
} }

View File

@ -7,9 +7,27 @@ namespace SqlSugar
{ {
public class OracleCodeFirst : CodeFirstProvider public class OracleCodeFirst : CodeFirstProvider
{ {
public OracleCodeFirst() protected override void GetDbType(EntityColumnInfo item, Type propertyType, DbColumnInfo result)
{ {
throw new Exception("Oracle该功能还未测试"); if (!string.IsNullOrEmpty(item.DataType))
{
result.DataType = item.DataType;
}
else if (propertyType.IsEnum())
{
result.DataType = this.Context.Ado.DbBind.GetDbTypeName(item.Length > 9 ? UtilConstants.LongType.Name : UtilConstants.IntType.Name);
}
else
{
if (propertyType.Name.Equals("Guid", StringComparison.CurrentCultureIgnoreCase))
{
result.DataType = this.Context.Ado.DbBind.GetDbTypeName(UtilConstants.StringType.Name);
}
else
{
result.DataType = this.Context.Ado.DbBind.GetDbTypeName(propertyType.Name);
}
}
} }
} }
} }

View File

@ -166,7 +166,7 @@ namespace SqlSugar
{ {
get get
{ {
return "IDENTITY(1,1)"; return "";
} }
} }
@ -319,7 +319,27 @@ namespace SqlSugar
public override bool CreateTable(string tableName, List<DbColumnInfo> columns, bool isCreatePrimaryKey = true) public override bool CreateTable(string tableName, List<DbColumnInfo> columns, bool isCreatePrimaryKey = true)
{ {
throw new NotImplementedException(); if (columns.HasValue())
{
foreach (var item in columns)
{
if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0)
{
item.Length = 50;
}
}
}
string sql = GetCreateTableSql(tableName, columns);
this.Context.Ado.ExecuteCommand(sql);
if (isCreatePrimaryKey)
{
var pkColumns = columns.Where(it => it.IsPrimarykey).ToList();
foreach (var item in pkColumns)
{
this.Context.DbMaintenance.AddPrimaryKey(tableName, item.DbColumnName);
}
}
return true;
} }
#endregion #endregion
} }