mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-21 18:22:51 +08:00
151 lines
6.4 KiB
C#
151 lines
6.4 KiB
C#
using FreeSql.DataAnnotations;
|
|
using FreeSql;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Xunit;
|
|
|
|
namespace FreeSql.Tests {
|
|
public class UnitTest1 {
|
|
|
|
ISelect<TestInfo> select => g.mysql.Select<TestInfo>();
|
|
[Fact]
|
|
public void Test1() {
|
|
|
|
var t1 = g.mysql.Select<TestInfo>().Where("").Where(a => a.Id > 0).Skip(100).Limit(200).ToSql();
|
|
var t2 = g.mysql.Select<TestInfo>().As("b").Where("").Where(a => a.Id > 0).Skip(100).Limit(200).ToSql();
|
|
|
|
|
|
var sql1 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).ToSql();
|
|
var sql2 = select.LeftJoin<TestTypeInfo>((a, b) => a.TypeGuid == b.Guid && b.Name == "111").ToSql();
|
|
var sql3 = select.LeftJoin("TestTypeInfo b on b.Guid = a.TypeGuid").ToSql();
|
|
|
|
//g.mysql.Select<TestInfo, TestTypeInfo, TestTypeParentInfo>().Join((a, b, c) => new Model.JoinResult3(
|
|
// Model.JoinType.LeftJoin, a.TypeGuid == b.Guid,
|
|
// Model.JoinType.InnerJoin, c.Id == b.ParentId && c.Name == "xxx")
|
|
//);
|
|
|
|
//var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((a, b, c) => new SelectFrom()
|
|
// .InnerJoin(a.TypeGuid == b.Guid)
|
|
// .LeftJoin(c.Id == b.ParentId)
|
|
// .Where(b.Name == "xxx"))
|
|
//.Where(a => a.Id == 1).ToSql();
|
|
|
|
var sql4 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
|
.InnerJoin(a => a.TypeGuid == b.Guid)
|
|
.LeftJoin(a => c.Id == b.ParentId)
|
|
.Where(a => b.Name == "xxx"));
|
|
//.Where(a => a.Id == 1).ToSql();
|
|
|
|
|
|
var list111 = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
|
.InnerJoin(a => a.TypeGuid == b.Guid)
|
|
.LeftJoin(a => c.Id == b.ParentId)
|
|
.Where(a => b.Name != "xxx")).ToList((a, b, c) => new {
|
|
a.Id,
|
|
a.Title,
|
|
a.Type,
|
|
ccc = new { a.Id, a.Title },
|
|
tp = a.Type,
|
|
tp2 = new {
|
|
a.Id,
|
|
tp2 = a.Type.Name
|
|
},
|
|
tp3 = new {
|
|
a.Id,
|
|
tp33 = new {
|
|
a.Id
|
|
}
|
|
}
|
|
});
|
|
|
|
var ttt122 = g.mysql.Select<TestTypeParentInfo>().Where(a => a.Id > 0).ToSql();
|
|
|
|
|
|
|
|
|
|
var sql5 = g.mysql.Select<TestInfo>().From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s).Where((a, b, c) => a.Id == b.ParentId).ToSql();
|
|
|
|
|
|
|
|
|
|
|
|
//((JoinType.LeftJoin, a.TypeGuid == b.Guid), (JoinType.InnerJoin, b.ParentId == c.Id)
|
|
|
|
var t11112 = g.mysql.Select<TestInfo>().ToList(a => new {
|
|
a.Id, a.Title, a.Type,
|
|
ccc = new { a.Id, a.Title },
|
|
tp = a.Type,
|
|
tp2 = new {
|
|
a.Id, tp2 = a.Type.Name
|
|
},
|
|
tp3 = new {
|
|
a.Id,
|
|
tp33 = new {
|
|
a.Id
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
var t100 = g.mysql.Select<TestInfo>().Where("").Where(a => a.Id > 0).Skip(100).Limit(200).Caching(50).ToList();
|
|
var t101 = g.mysql.Select<TestInfo>().As("b").Where("").Where(a => a.Id > 0).Skip(100).Limit(200).Caching(50).ToList();
|
|
|
|
|
|
var t1111 = g.mysql.Select<TestInfo>().ToList(a => new { a.Id, a.Title, a.Type });
|
|
|
|
var t2222 = g.mysql.Select<TestInfo>().ToList(a => new { a.Id, a.Title, a.Type.Name });
|
|
|
|
var t3 = g.mysql.Insert<TestInfo>(new[] { new TestInfo { }, new TestInfo { } }).IgnoreColumns(a => a.Title).ToSql();
|
|
var t4 = g.mysql.Insert<TestInfo>(new[] { new TestInfo { }, new TestInfo { } }).IgnoreColumns(a => new { a.Title, a.CreateTime }).ToSql();
|
|
var t5 = g.mysql.Insert<TestInfo>(new[] { new TestInfo { }, new TestInfo { } }).IgnoreColumns(a => new { a.Title, a.TypeGuid, a.CreateTime }).ToSql();
|
|
var t6 = g.mysql.Insert<TestInfo>(new[] { new TestInfo { }, new TestInfo { } }).InsertColumns(a => new { a.Title }).ToSql();
|
|
|
|
var t7 = g.mysql.Update<TestInfo>().ToSql();
|
|
var t8 = g.mysql.Update<TestInfo>().Where(new TestInfo { }).ToSql();
|
|
var t9 = g.mysql.Update<TestInfo>().Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).ToSql();
|
|
var t10 = g.mysql.Update<TestInfo>().Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).Where(a => a.Title == "111").ToSql();
|
|
var t11 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).ToSql();
|
|
var t12 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).Where(a => a.Title == "111").ToSql();
|
|
|
|
var t13 = g.mysql.Update<TestInfo>().Set(a => a.Title, "222111").ToSql();
|
|
var t14 = g.mysql.Update<TestInfo>().Set(a => a.Title, "222111").Where(new TestInfo { }).ToSql();
|
|
var t15 = g.mysql.Update<TestInfo>().Set(a => a.Title, "222111").Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).ToSql();
|
|
var t16 = g.mysql.Update<TestInfo>().Set(a => a.Title, "222111").Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).Where(a => a.Title == "111").ToSql();
|
|
var t17 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).Set(a => a.Title, "222111").ToSql();
|
|
var t18 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).Set(a => a.Title, "222111").Where(a => a.Title == "111").ToSql();
|
|
|
|
var t19 = g.mysql.Update<TestInfo>().Set(a => a.TypeGuid + 222111).ToSql();
|
|
var t20 = g.mysql.Update<TestInfo>().Set(a => a.TypeGuid + 222111).Where(new TestInfo { }).ToSql();
|
|
var t21 = g.mysql.Update<TestInfo>().Set(a => a.TypeGuid + 222111).Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).ToSql();
|
|
var t22 = g.mysql.Update<TestInfo>().Set(a => a.TypeGuid + 222111).Where(new[] { new TestInfo { Id = 1 }, new TestInfo { Id = 2 } }).Where(a => a.Title == "111").ToSql();
|
|
var t23 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).Set(a => a.TypeGuid + 222111).ToSql();
|
|
var t24 = g.mysql.Update<TestInfo>().SetSource(new[] { new TestInfo { Id = 1, Title = "111" }, new TestInfo { Id = 2, Title = "222" } }).Set(a => a.TypeGuid + 222111).Where(a => a.Title == "111").ToSql();
|
|
|
|
}
|
|
}
|
|
|
|
[Table(Name = "xxx", SelectFilter = " a.id > 0")]
|
|
class TestInfo {
|
|
[Column(IsIdentity = true, IsPrimary = true)]
|
|
public int Id { get; set; }
|
|
public int TypeGuid { get; set; }
|
|
public TestTypeInfo Type { get; set; }
|
|
public string Title { get; set; }
|
|
public DateTime CreateTime { get; set; }
|
|
}
|
|
|
|
class TestTypeInfo {
|
|
public int Guid { get; set; }
|
|
public int ParentId { get; set; }
|
|
public TestTypeParentInfo Parent { get; set; }
|
|
public string Name { get; set; }
|
|
}
|
|
|
|
class TestTypeParentInfo {
|
|
public int Id { get; set; }
|
|
public string Name { get; set; }
|
|
|
|
public List<TestTypeInfo> Types { get; set; }
|
|
}
|
|
}
|