mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 增加 IEnumerable<TEntity> 扩展方法 AsSelect
This commit is contained in:
@ -196,6 +196,22 @@ namespace FreeSql.Tests.MySql {
|
||||
var count = select.Where(a => 1 == 1).Count();
|
||||
Assert.False(select.Where(a => 1 == 2).Any());
|
||||
Assert.Equal(count > 0, select.Where(a => 1 == 1).Any());
|
||||
|
||||
var sql2222 = select.Where(a =>
|
||||
select.Where(b => b.Id == a.Id &&
|
||||
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||
.Offset(a.Id)
|
||||
.Any()
|
||||
).Any(c => c.Id == a.Id + 10)
|
||||
);
|
||||
var sql2222Tolist = sql2222.ToList();
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TestTypeInfoGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
collectionSelect.ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void Count() {
|
||||
|
@ -70,6 +70,22 @@ namespace FreeSql.Tests.Oracle {
|
||||
var count = select.Where(a => 1 == 1).Count();
|
||||
Assert.False(select.Where(a => 1 == 2).Any());
|
||||
Assert.Equal(count > 0, select.Where(a => 1 == 1).Any());
|
||||
|
||||
var sql2222 = select.Where(a =>
|
||||
select.Where(b => b.Id == a.Id &&
|
||||
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||
.Offset(a.Id)
|
||||
.Any()
|
||||
).Any(c => c.Id == a.Id + 10)
|
||||
);
|
||||
var sql2222Tolist = sql2222.ToList();
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TestTypeInfoGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
collectionSelect.ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void Count() {
|
||||
|
@ -138,6 +138,22 @@ namespace FreeSql.Tests.PostgreSQL {
|
||||
var count = select.Where(a => 1 == 1).Count();
|
||||
Assert.False(select.Where(a => 1 == 2).Any());
|
||||
Assert.Equal(count > 0, select.Where(a => 1 == 1).Any());
|
||||
|
||||
var sql2222 = select.Where(a =>
|
||||
select.Where(b => b.Id == a.Id &&
|
||||
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||
.Offset(a.Id)
|
||||
.Any()
|
||||
).Any(c => c.Id == a.Id + 10)
|
||||
);
|
||||
var sql2222Tolist = sql2222.ToList();
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TestTypeInfoGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
collectionSelect.ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void Count() {
|
||||
|
@ -71,6 +71,22 @@ namespace FreeSql.Tests.SqlServer {
|
||||
var count = select.Where(a => 1 == 1).Count();
|
||||
Assert.False(select.Where(a => 1 == 2).Any());
|
||||
Assert.Equal(count > 0, select.Where(a => 1 == 1).Any());
|
||||
|
||||
var sql2222 = select.Where(a =>
|
||||
select.Where(b => b.Id == a.Id &&
|
||||
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||
.Offset(a.Id)
|
||||
.Any()
|
||||
).Any(c => c.Id == a.Id + 10)
|
||||
);
|
||||
var sql2222Tolist = sql2222.ToList();
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TestTypeInfoGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
collectionSelect.ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void Count() {
|
||||
|
@ -102,6 +102,22 @@ namespace FreeSql.Tests.Sqlite {
|
||||
var count = select.Where(a => 1 == 1).Count();
|
||||
Assert.False(select.Where(a => 1 == 2).Any());
|
||||
Assert.Equal(count > 0, select.Where(a => 1 == 1).Any());
|
||||
|
||||
var sql2222 = select.Where(a =>
|
||||
select.Where(b => b.Id == a.Id &&
|
||||
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||
.Offset(a.Id)
|
||||
.Any()
|
||||
).Any(c => c.Id == a.Id + 10)
|
||||
);
|
||||
var sql2222Tolist = sql2222.ToList();
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TestTypeInfoGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
collectionSelect.ToList();
|
||||
}
|
||||
[Fact]
|
||||
public void Count() {
|
||||
|
@ -27,15 +27,22 @@ namespace FreeSql.Tests {
|
||||
public virtual Order Order { get; set; }
|
||||
}
|
||||
|
||||
class NullAggreTestTable {
|
||||
[Column(IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
}
|
||||
|
||||
ISelect<TestInfo> select => g.mysql.Select<TestInfo>();
|
||||
[Fact]
|
||||
public void Test1() {
|
||||
|
||||
var collSelect1 = g.mysql.Select<Order>().Where(a =>
|
||||
a.OrderDetails.AsSelect().Where(b => b.OrderId == a.OrderID).Any()
|
||||
);
|
||||
|
||||
var collectionSelect = select.Where(a =>
|
||||
a.Type.Guid == a.TypeGuid &&
|
||||
a.Type.Parent.Id == a.Type.ParentId &&
|
||||
a.Type.Parent.Types.AsSelect().Where(b => b.Name == a.Title).Any(b => b.ParentId == a.Type.Parent.Id)
|
||||
);
|
||||
|
||||
|
||||
|
||||
var order = g.mysql.Select<Order>().Where(a => a.OrderID == 1).ToOne(); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
var orderDetail1 = order.OrderDetails; //<2F><>һ<EFBFBD>η<EFBFBD><CEB7>ʣ<EFBFBD><CAA3><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>ݿ<EFBFBD>
|
||||
var orderDetail2 = order.OrderDetails; //<2F>ڶ<EFBFBD><DAB6>η<EFBFBD><CEB7>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>
|
||||
@ -182,6 +189,11 @@ namespace FreeSql.Tests {
|
||||
|
||||
}
|
||||
}
|
||||
class NullAggreTestTable {
|
||||
[Column(IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
}
|
||||
|
||||
|
||||
[Table(Name = "xxx", SelectFilter = " a.id > 0")]
|
||||
class TestInfo {
|
||||
|
Reference in New Issue
Block a user