sqlsugar/Src/Asp.Net/SqlSugar/Realization/Oracle/CodeFirst/OracleCodeFirst.cs

68 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SqlSugar
{
public class OracleCodeFirst : CodeFirstProvider
{
public OracleCodeFirst() {
if (DefultLength == 0)
DefultLength = 40;
}
protected override int DefultLength { get; set; }
protected override void GetDbType(EntityColumnInfo item, Type propertyType, DbColumnInfo result)
{
if (!string.IsNullOrEmpty(item.DataType))
{
result.DataType = item.DataType;
}
else if (item.DataType==null&&item.UnderType == UtilConstants.LongType)
{
result.Length = 0;
result.DecimalDigits = 0;
result.DataType = "NUMBER(19,0)";
}
else if (item.DataType == null && item.UnderType == UtilConstants.BoolType)
{
result.Length = 0;
result.DecimalDigits = 0;
result.DataType = "NUMBER(1,0)";
}
//else if (item.DataType == null && item.UnderType == UtilConstants.IntType)
//{
// result.Length = 0;
// result.DecimalDigits = 0;
// result.DataType = "NUMBER(9,0)";
//}
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);
if (result.Length <= 1)
{
result.Length = 36;
}
}
else
{
result.DataType = this.Context.Ado.DbBind.GetDbTypeName(propertyType.Name);
}
}
}
protected override void KeyAction(EntityColumnInfo item, DbColumnInfo dbColumn, out bool pkDiff, out bool idEntityDiff)
{
pkDiff = item.IsPrimarykey != dbColumn.IsPrimarykey;
idEntityDiff = false;
}
}
}