diff --git a/Src/Asp.Net/OracleTest/UnitTest/Main.cs b/Src/Asp.Net/OracleTest/UnitTest/Main.cs index 643fdc8ec..b241961d9 100644 --- a/Src/Asp.Net/OracleTest/UnitTest/Main.cs +++ b/Src/Asp.Net/OracleTest/UnitTest/Main.cs @@ -34,7 +34,11 @@ namespace OrmTest } public static void Init() { - + DeleteTest(); + CodeFirst(); + Updateable(); + Json(); + Ado(); Queryable(); QueryableAsync(); //Thread(); diff --git a/Src/Asp.Net/OracleTest/UnitTest/UQueryable.cs b/Src/Asp.Net/OracleTest/UnitTest/UQueryable.cs index fd1183818..cadd4e5a7 100644 --- a/Src/Asp.Net/OracleTest/UnitTest/UQueryable.cs +++ b/Src/Asp.Net/OracleTest/UnitTest/UQueryable.cs @@ -12,15 +12,83 @@ namespace OrmTest public static void Queryable() { - - // Db.CodeFirst.InitTables(); - Db.Insertable(new UnitTest0012() { ID = "a" }).ExecuteCommand(); - //Db.Insertable(new UnitTest0012() { ID = "b" }).ExecuteCommand(); - var x1 = Db.Ado.GetDataTable("SELECT ID FROM UNITTEST0012 ", new SugarParameter("Const0", "a", System.Data.DbType.AnsiStringFixedLength)); + var pageindex = 1; + var pagesize = 10; + var total = 0; + var totalPage = 0; + var list = Db.Queryable().ToPageList(pageindex, pagesize, ref total, ref totalPage); - + //Db.CodeFirst.InitTables(typeof(CarType)); + //Db.Updateable() + // .SetColumns(it => new CarType { State = SqlSugar.SqlFunc.IIF(it.State == true, false, true) }).Where(it => true) + // .ExecuteCommand(); + + //Db.CodeFirst.InitTables(typeof(TestTree)); + //Db.DbMaintenance.TruncateTable(); + //Db.Ado.ExecuteCommand("insert testtree values(hierarchyid::GetRoot(),geography :: STGeomFromText ('POINT(55.9271035250276 -3.29431266523898)',4326),'name')"); + //var list2 = Db.Queryable().ToList(); + + Db.CodeFirst.InitTables(); + Db.Queryable().Where(it => it.Id.HasValue).ToList(); + + Db.Queryable().Where(it => SqlSugar.SqlFunc.Equals(it.CreateTime.Date, it.CreateTime.Date)).ToList(); + + // var sql = Db.Queryable().Select(it => new UnitSelectTest() + // { + + // DcNull = it.Dc, + // Dc = it.Int + // }).ToSql().Key; + // UValidate.Check(sql, "SELECT [Dc] AS [DcNull] , [Int] AS [Dc] FROM [UnitSelectTest]", "Queryable"); + + // sql = Db.Updateable(new UnitSelectTest2()).ToSql().Key; + // UValidate.Check(sql, @"UPDATE [UnitSelectTest2] SET + //[Dc]=@Dc,[IntNull]=@IntNull WHERE [Int]=@Int", "Queryable"); + + // sql = Db.Queryable().IgnoreColumns(it => it.CreateTime).ToSql().Key; + // UValidate.Check(sql, "SELECT [Id],[Name],[Price],[CustomId] FROM [Order] ", "Queryable"); + // sql = Db.Queryable().IgnoreColumns(it => new { it.Id, it.Name }).ToSql().Key; + // UValidate.Check(sql, "SELECT [Price],[CreateTime],[CustomId] FROM [Order] ", "Queryable"); + // sql = Db.Queryable().IgnoreColumns("id").ToSql().Key; + // UValidate.Check(sql, "SELECT [Name],[Price],[CreateTime],[CustomId] FROM [Order] ", "Queryable"); + + var cts = IEnumerbleContains.Data(); + var list2 = Db.Queryable() + .Where(p => /*ids.*/cts.Select(c => c.Id).Contains(p.Id)).ToList(); + + var cts2 = IEnumerbleContains.Data().ToList(); ; + var list3 = Db.Queryable() + .Where(p => /*ids.*/cts2.Select(c => c.Id).Contains(p.Id)).ToList(); + + + var list4 = Db.Queryable() + .Where(p => new List { 1, 2, 3 }.Where(b => b > 1).Contains(p.Id)).ToList(); + + Db.CodeFirst.InitTables(); + var list5 = Db.Queryable().Where(it => SqlSugar.SqlFunc.ToString(it.Date.Value.Year) == "1").ToList(); + var list6 = Db.Queryable().Where(it => it.Date.Value.Year == 1).ToList(); + var list7 = Db.Queryable().Where(it => it.Date.Value.Date == DateTime.Now.Date).ToList(); + + + SaleOrder saleOrderInfo = new SaleOrder(); + Db.CodeFirst.InitTables(); + var result = Db.GetSimpleClient().Update(o => new SaleOrder() + { + OrderStatus = 1, + CheckMan = saleOrderInfo.CheckMan, + CheckTime = DateTime.Now + }, o => o.OrderSn == saleOrderInfo.OrderSn && o.OrderStatus != 1); + + + Db.CodeFirst.InitTables(); + Db.Insertable(new UnitTest0012() { ID = "a" }).ExecuteCommand(); + //Db.Insertable(new UnitTest0012() { ID = "b" }).ExecuteCommand(); //Db.CurrentConnectionConfig.MoreSettings=new ConnMoreSettings { DisableNvarchar = true }; var x = Db.Ado.GetDataTable("SELECT ID FROM UNITTEST0012 WHERE ID = :Const0 ",new SugarParameter("Const0", "a",System.Data.DbType.AnsiStringFixedLength)); + if (x.Rows.Count == 0) + { + throw new Exception("unit query error"); + } } public class UnitTest0012 diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/OracleProvider.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/OracleProvider.cs index 2ea6cc036..616b20864 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/OracleProvider.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/OracleProvider.cs @@ -120,8 +120,6 @@ namespace SqlSugar { if (parameter.Value == null) parameter.Value = DBNull.Value; var sqlParameter = new OracleParameter(); - sqlParameter.Value = parameter.Value; - sqlParameter.DbType = parameter.DbType; sqlParameter.Size = parameter.Size == -1 ? 0 : parameter.Size; sqlParameter.ParameterName = parameter.ParameterName; if (sqlParameter.ParameterName[0] == '@') @@ -139,6 +137,7 @@ namespace SqlSugar if (parameter.IsClob) { sqlParameter.OracleDbType = OracleDbType.Clob; + sqlParameter.Value = sqlParameter.Value; } if (sqlParameter.DbType == System.Data.DbType.Guid) { @@ -167,6 +166,11 @@ namespace SqlSugar sqlParameter.Value = parameter.Value; sqlParameter.DbType = System.Data.DbType.Date; } + else if (parameter.DbType == System.Data.DbType.AnsiStringFixedLength) + { + sqlParameter.DbType = System.Data.DbType.AnsiStringFixedLength; + sqlParameter.Value = parameter.Value; + } else { if (parameter.Value != null && parameter.Value.GetType() == UtilConstants.GuidType) @@ -178,7 +182,7 @@ namespace SqlSugar if (parameter.Direction != 0) sqlParameter.Direction = parameter.Direction; result[index] = sqlParameter; - if (sqlParameter.Direction.IsIn(ParameterDirection.Output, ParameterDirection.InputOutput,ParameterDirection.ReturnValue)) + if (sqlParameter.Direction.IsIn(ParameterDirection.Output, ParameterDirection.InputOutput, ParameterDirection.ReturnValue)) { if (this.OutputParameters == null) this.OutputParameters = new List(); this.OutputParameters.RemoveAll(it => it.ParameterName == sqlParameter.ParameterName);