Update MySql

This commit is contained in:
sunkaixuan 2017-06-25 20:46:17 +08:00
parent 123f818666
commit f9bea8e5b2
6 changed files with 34 additions and 46 deletions

View File

@ -21,11 +21,11 @@ namespace OrmTest
new Field(1).Init(); new Field(1).Init();
new Where(1).Init(); new Where(1).Init();
new Method(1).Init(); new Method(1).Init();
// new JoinQuery(1).Init(); new JoinQuery(1).Init();
// new SingleQuery(1).Init(); new SingleQuery(1).Init();
// new SelectQuery(1).Init(); new SelectQuery(1).Init();
// new AutoClose(1).Init(); new AutoClose(1).Init();
// new Insert(1).Init(); new Insert(1).Init();
// new Delete(1).Init(); // new Delete(1).Init();
// new Update(1).Init(); // new Update(1).Init();
// new Mapping(1).Init(); // new Mapping(1).Init();

View File

@ -24,8 +24,8 @@ namespace OrmTest.UnitTest
//db.MappingColumns.Add("id","dbid", "Student"); //db.MappingColumns.Add("id","dbid", "Student");
var t1 = db.Insertable(insertObj).ToSql(); var t1 = db.Insertable(insertObj).ToSql();
base.Check(@"INSERT INTO [STudent] base.Check(@"INSERT INTO `STudent`
([SchoolId],[Name],[CreateTime]) (`SchoolId`,`Name`,`CreateTime`)
VALUES VALUES
(@SchoolId,@Name,@CreateTime) ;SELECT SCOPE_IDENTITY();", (@SchoolId,@Name,@CreateTime) ;SELECT SCOPE_IDENTITY();",
new List<SugarParameter>() { new List<SugarParameter>() {
@ -42,8 +42,8 @@ namespace OrmTest.UnitTest
db.IgnoreColumns = null; db.IgnoreColumns = null;
//Only insert Name //Only insert Name
var t3 = db.Insertable(insertObj).InsertColumns(it => new { it.Name }).ToSql(); var t3 = db.Insertable(insertObj).InsertColumns(it => new { it.Name }).ToSql();
base.Check(@"INSERT INTO [STudent] base.Check(@"INSERT INTO `STudent`
([Name]) (`Name`)
VALUES VALUES
(@Name) ;SELECT SCOPE_IDENTITY();", new List<SugarParameter>() { (@Name) ;SELECT SCOPE_IDENTITY();", new List<SugarParameter>() {
new SugarParameter("@Name","jack") new SugarParameter("@Name","jack")
@ -52,8 +52,8 @@ namespace OrmTest.UnitTest
//Ignore Name and TestId //Ignore Name and TestId
var t4 = db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ToSql(); var t4 = db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ToSql();
base.Check(@"INSERT INTO [STudent] base.Check(@"INSERT INTO `STudent`
([SchoolId],[CreateTime]) (`SchoolId`,`CreateTime`)
VALUES VALUES
(@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();", (@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();",
new List<SugarParameter>() { new List<SugarParameter>() {
@ -64,8 +64,8 @@ namespace OrmTest.UnitTest
//Ignore Name and TestId //Ignore Name and TestId
var t5 = db.Insertable(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").With(SqlWith.UpdLock).ToSql(); var t5 = db.Insertable(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").With(SqlWith.UpdLock).ToSql();
base.Check(@"INSERT INTO [STudent] WITH(UPDLOCK) base.Check(@"INSERT INTO `STudent` WITH(UPDLOCK)
([SchoolId],[CreateTime]) (`SchoolId`,`CreateTime`)
VALUES VALUES
(@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();", (@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();",
new List<SugarParameter>() { new List<SugarParameter>() {
@ -75,8 +75,8 @@ new List<SugarParameter>() {
); );
//Use Lock //Use Lock
var t6 = db.Insertable(insertObj).With(SqlWith.UpdLock).ToSql(); var t6 = db.Insertable(insertObj).With(SqlWith.UpdLock).ToSql();
base.Check(@"INSERT INTO [STudent] WITH(UPDLOCK) base.Check(@"INSERT INTO `STudent` WITH(UPDLOCK)
([SchoolId],[Name],[CreateTime]) (`SchoolId`,`Name`,`CreateTime`)
VALUES VALUES
(@SchoolId,@Name,@CreateTime) ;SELECT SCOPE_IDENTITY();", (@SchoolId,@Name,@CreateTime) ;SELECT SCOPE_IDENTITY();",
new List<SugarParameter>() { new List<SugarParameter>() {
@ -88,8 +88,8 @@ new List<SugarParameter>() {
var insertObj2 = new Student() { Name = null,SchoolId=0, CreateTime = Convert.ToDateTime("2010-1-1") }; var insertObj2 = new Student() { Name = null,SchoolId=0, CreateTime = Convert.ToDateTime("2010-1-1") };
var t8 = db.Insertable(insertObj2).Where(true/* Is insert null */, true/*off identity*/).ToSql(); var t8 = db.Insertable(insertObj2).Where(true/* Is insert null */, true/*off identity*/).ToSql();
base.Check(@"INSERT INTO [STudent] base.Check(@"INSERT INTO `STudent`
([ID],[SchoolId],[CreateTime]) (`ID`,`SchoolId`,`CreateTime`)
VALUES VALUES
(@ID,@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();", (@ID,@SchoolId,@CreateTime) ;SELECT SCOPE_IDENTITY();",
new List<SugarParameter>() { new List<SugarParameter>() {

View File

@ -36,7 +36,7 @@ namespace OrmTest.UnitTest
.Where("st.id>@id") .Where("st.id>@id")
.AddParameters(new { id = 1 }) .AddParameters(new { id = 1 })
.Select("st.*").ToSql(); .Select("st.*").ToSql();
string sql = @"SELECT st.* FROM [Student] st Left JOIN School sh ON sh.id=st.schoolid WHERE st.id>@id "; string sql = @"SELECT st.* FROM `Student` st Left JOIN School sh ON sh.id=st.schoolid WHERE st.id>@id ";
base.Check(sql,new List<SugarParameter>() {new SugarParameter("@id",1)}, join3.Key, join3.Value, "join 3 Error"); base.Check(sql,new List<SugarParameter>() {new SugarParameter("@id",1)}, join3.Key, join3.Value, "join 3 Error");
} }
} }
@ -48,7 +48,7 @@ namespace OrmTest.UnitTest
var join1 = db.Queryable<Student, School>((st, sc) => new object[] { var join1 = db.Queryable<Student, School>((st, sc) => new object[] {
JoinType.Left,st.SchoolId==sc.Id JoinType.Left,st.SchoolId==sc.Id
}).Where(st => st.Id > 0).Select<Student>("*").ToSql(); }).Where(st => st.Id > 0).Select<Student>("*").ToSql();
base.Check(@"SELECT * FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] = [sc].[Id] ) WHERE ( [st].[ID] > @Id0 ) ", base.Check(@"SELECT * FROM `STudent` st Left JOIN School sc ON ( `st`.`SchoolId` = `sc`.`Id` ) WHERE ( `st`.`ID` > @Id0 ) ",
new List<SugarParameter>() { new List<SugarParameter>() {
new SugarParameter("@Id0",0) new SugarParameter("@Id0",0)
}, join1.Key, join1.Value, "join 1 Error"); }, join1.Key, join1.Value, "join 1 Error");
@ -61,7 +61,7 @@ namespace OrmTest.UnitTest
var join2 = db.Queryable<Student, School>((st, sc) => new object[] { var join2 = db.Queryable<Student, School>((st, sc) => new object[] {
JoinType.Left,st.SchoolId==sc.Id JoinType.Left,st.SchoolId==sc.Id
}).Where(st => st.Id > 2).Select<Student>("*").ToSql(); }).Where(st => st.Id > 2).Select<Student>("*").ToSql();
base.Check(@"SELECT * FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] = [sc].[Id] ) WHERE ( [st].[ID] > @Id0 ) ", base.Check(@"SELECT * FROM `STudent` st Left JOIN School sc ON ( `st`.`SchoolId` = `sc`.`Id` ) WHERE ( `st`.`ID` > @Id0 ) ",
new List<SugarParameter>() { new List<SugarParameter>() {
new SugarParameter("@Id0",2) new SugarParameter("@Id0",2)
}, join2.Key, join2.Value, "join 2 Error"); }, join2.Key, join2.Value, "join 2 Error");

View File

@ -50,7 +50,7 @@ namespace OrmTest.UnitTest
var t1 = db.Queryable<Student, School>((st, sc) => new object[] { var t1 = db.Queryable<Student, School>((st, sc) => new object[] {
JoinType.Inner,st.Id==sc.Id JoinType.Inner,st.Id==sc.Id
}).GroupBy(st => st.Id).Having(st => SqlFunc.AggregateAvg(st.Id) == 1).Select(st => new { avgId = SqlFunc.AggregateAvg(st.Id) }).ToSql(); }).GroupBy(st => st.Id).Having(st => SqlFunc.AggregateAvg(st.Id) == 1).Select(st => new { avgId = SqlFunc.AggregateAvg(st.Id) }).ToSql();
base.Check("SELECT AVG([st].[ID]) AS [avgId] FROM [STudent] st Inner JOIN School sc ON ( [st].[ID] = [sc].[Id] ) GROUP BY [st].[ID] HAVING (AVG([st].[ID]) = @Const0 ) ", base.Check("SELECT AVG(`st`.`ID`) AS `avgId` FROM `STudent` st Inner JOIN School sc ON ( `st`.`ID` = `sc`.`Id` ) GROUP BY `st`.`ID` HAVING (AVG(`st`.`ID`) = @Const0 ) ",
new List<SugarParameter>() { new List<SugarParameter>() {
new SugarParameter("@Const0",1) new SugarParameter("@Const0",1)
} }
@ -64,7 +64,7 @@ namespace OrmTest.UnitTest
.Where(st => st.Id > 0) .Where(st => st.Id > 0)
.Select((st, st2) => new { stid = st.Id, scId = st2.Id, xx = st }).ToSql(); .Select((st, st2) => new { stid = st.Id, scId = st2.Id, xx = st }).ToSql();
base.Check("SELECT [st].[Id] AS [stid] , [st2].[Id] AS [scId] , [st].[Id] AS [School.Id] , [st].[Name] AS [School.Name] FROM [School] st Left JOIN School st2 ON ( [st].[Id] = [st2].[Id] ) WHERE ( [st].[Id] > @Id0 ) " base.Check("SELECT `st`.`Id` AS `stid` , `st2`.`Id` AS `scId` , `st`.`Id` AS `School.Id` , `st`.`Name` AS `School.Name` FROM `School` st Left JOIN School st2 ON ( `st`.`Id` = `st2`.`Id` ) WHERE ( `st`.`Id` > @Id0 ) "
, new List<SugarParameter>() { , new List<SugarParameter>() {
new SugarParameter("@Id0",0) new SugarParameter("@Id0",0)
}, t2.Key, t2.Value, "select t2 Error"); }, t2.Key, t2.Value, "select t2 Error");
@ -75,7 +75,7 @@ namespace OrmTest.UnitTest
JoinType.Left,sc2.Id==sc.Id JoinType.Left,sc2.Id==sc.Id
}).Where(st => st.Id > 0) }).Where(st => st.Id > 0)
.Select<School>((st) => new School() { Id = st.Id }).ToSql(); .Select<School>((st) => new School() { Id = st.Id }).ToSql();
base.Check("SELECT [st].[ID] AS [Id] FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] = [sc].[Id] ) Left JOIN School sc2 ON ( [sc2].[Id] = [sc].[Id] ) WHERE ( [st].[ID] > @Id0 ) ", base.Check("SELECT `st`.`ID` AS `Id` FROM `STudent` st Left JOIN School sc ON ( `st`.`SchoolId` = `sc`.`Id` ) Left JOIN School sc2 ON ( `sc2`.`Id` = `sc`.`Id` ) WHERE ( `st`.`ID` > @Id0 ) ",
new List<SugarParameter>() { new List<SugarParameter>() {
new SugarParameter("@Id0",0) new SugarParameter("@Id0",0)
}, t3.Key, t3.Value, "select t3 Error"); }, t3.Key, t3.Value, "select t3 Error");
@ -87,7 +87,7 @@ namespace OrmTest.UnitTest
public SqlSugarClient GetInstance() public SqlSugarClient GetInstance()
{ {
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.MySql });
return db; return db;
} }
} }

View File

@ -30,33 +30,24 @@ namespace OrmTest.UnitTest
using (var db = GetInstance()) using (var db = GetInstance())
{ {
var t1 = db.Queryable<Student>().ToSql(); var t1 = db.Queryable<Student>().ToSql();
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent]", null, t1.Key, null, "single t1 Error"); base.Check("SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent`", null, t1.Key, null, "single t1 Error");
var t2 = db.Queryable<Student>().With(SqlWith.NoLock).ToSql(); var t2 = db.Queryable<Student>().With(SqlWith.NoLock).ToSql();
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WITH(NOLOCK)", null, t2.Key, null, "single t2 Error"); base.Check("SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` ", null, t2.Key, null, "single t2 Error");
var t3 = db.Queryable<Student>().OrderBy(it=>it.Id).ToSql(); var t3 = db.Queryable<Student>().OrderBy(it=>it.Id).ToSql();
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] ORDER BY [ID] ASC", null, t3.Key, null, "single t3 Error"); base.Check("SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` ORDER BY `ID` ASC", null, t3.Key, null, "single t3 Error");
var t4 = db.Queryable<Student>().OrderBy(it => it.Id).Take(3).ToSql(); var t4 = db.Queryable<Student>().OrderBy(it => it.Id).Take(3).ToSql();
base.Check(@"WITH PageTable AS( base.Check(@"SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` ORDER BY `ID` ASC LIMIT 1,3", null, t4.Key, null, "single t4 Error");
SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent]
)
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 1 AND 3", null, t4.Key, null, "single t4 Error");
var t5 = db.Queryable<Student>().OrderBy(it => it.Id).Skip(3).ToSql(); var t5 = db.Queryable<Student>().OrderBy(it => it.Id).Skip(3).ToSql();
base.Check(@"WITH PageTable AS( base.Check(@"SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` LIMIT 4,9223372036854775807", null, t5.Key,null, "single t5 Error");
SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent]
)
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [ID] ASC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 4 AND 9223372036854775807", null, t5.Key,null, "single t5 Error");
int pageIndex = 2; int pageIndex = 2;
int pageSize = 10; int pageSize = 10;
var t6 = db.Queryable<Student>().OrderBy(it => it.Id,OrderByType.Desc).Skip((pageIndex-1)*pageSize).Take(pageSize).ToSql(); var t6 = db.Queryable<Student>().OrderBy(it => it.Id,OrderByType.Desc).Skip((pageIndex-1)*pageSize).Take(pageSize).ToSql();
base.Check(@"WITH PageTable AS( base.Check(@"SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` ORDER BY `ID` DESC LIMIT 11,10", null, t6.Key, null, "single t6 Error");
SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent]
)
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 11 AND 20", null, t6.Key, null, "single t6 Error");
int studentCount=db.Ado.GetInt("select count(1) from Student"); int studentCount=db.Ado.GetInt("select count(1) from Student");
@ -104,10 +95,7 @@ namespace OrmTest.UnitTest
.Where(it=>it.Id==1) .Where(it=>it.Id==1)
.WhereIF(true,it=> SqlFunc.Contains(it.Name,"a")) .WhereIF(true,it=> SqlFunc.Contains(it.Name,"a"))
.OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize ).With(SqlWith.NoLock).ToSql(); .OrderBy(it => it.Id, OrderByType.Desc).Skip((pageIndex - 1) * pageSize).Take(pageSize ).With(SqlWith.NoLock).ToSql();
base.Check(@"WITH PageTable AS( base.Check(@"SELECT `ID`,`SchoolId`,`Name`,`CreateTime` FROM `STudent` WHERE ( `ID` = @Id0 ) AND (`Name` like concat('%',@MethodConst1,'%')) ORDER BY `ID` DESC LIMIT 11,10", new List<SugarParameter>() {
SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WITH(NOLOCK) WHERE ( [ID] = @Id0 ) AND ([Name] like '%'+@MethodConst1+'%')
)
SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY [ID] DESC) AS RowIndex FROM PageTable ) T WHERE RowIndex BETWEEN 11 AND 20", new List<SugarParameter>() {
new SugarParameter("@Id0",1),new SugarParameter("@MethodConst1","a") new SugarParameter("@Id0",1),new SugarParameter("@MethodConst1","a")
}, t8.Key, t8.Value,"single t8 Error"); }, t8.Key, t8.Value,"single t8 Error");
@ -116,7 +104,7 @@ namespace OrmTest.UnitTest
var t9 = db.Queryable<Student>() var t9 = db.Queryable<Student>()
.In(1) .In(1)
.Select(it => new { it.Id, it.Name,x=it.Id }).ToSql(); .Select(it => new { it.Id, it.Name,x=it.Id }).ToSql();
base.Check("SELECT [ID] AS [Id] , [Name] AS [Name] , [ID] AS [x] FROM [STudent] WHERE [Id] IN (@InPara0) ", new List<SugarParameter>() { base.Check("SELECT `ID` AS `Id` , `Name` AS `Name` , `ID` AS `x` FROM `STudent` WHERE `ID` IN (@InPara0) ", new List<SugarParameter>() {
new SugarParameter("@InPara0",1) },t9.Key,t9.Value, "single t9 error"); new SugarParameter("@InPara0",1) },t9.Key,t9.Value, "single t9 error");
} }
} }
@ -124,7 +112,7 @@ namespace OrmTest.UnitTest
public SqlSugarClient GetInstance() public SqlSugarClient GetInstance()
{ {
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.MySql });
return db; return db;
} }
} }

View File

@ -25,7 +25,7 @@ namespace OrmTest.UnitTest
} }
public SqlSugarClient GetInstance() public SqlSugarClient GetInstance()
{ {
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }); SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.MySql, IsAutoCloseConnection = true });
return db; return db;
} }
} }