mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 03:53:21 +08:00
- 增加 子查询函数 First、Count、Min、Max、Sum、Avg 的支持;
This commit is contained in:
parent
272e55ecbf
commit
87c9ccf5c3
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 扩展包,可实现【延时加载】属性.</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql Implementation of General Repository, Support MySql/SqlServer/PostgreSQL/Oracle/Sqlite, and read/write separation、and split table.</Description>
|
||||
<PackageProjectUrl>https://github.com/2881099/FreeSql/wiki/Repository</PackageProjectUrl>
|
||||
|
@ -336,6 +336,17 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -870,18 +881,58 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -326,6 +326,17 @@ namespace FreeSql.Tests.MySql
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -860,18 +871,58 @@ namespace FreeSql.Tests.MySql
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -212,6 +212,17 @@ namespace FreeSql.Tests.Oracle
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -744,18 +755,58 @@ namespace FreeSql.Tests.Oracle
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -289,6 +289,17 @@ namespace FreeSql.Tests.PostgreSQL
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -818,18 +829,58 @@ namespace FreeSql.Tests.PostgreSQL
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -213,6 +213,17 @@ namespace FreeSql.Tests.SqlServer
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -741,18 +752,58 @@ namespace FreeSql.Tests.SqlServer
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -224,6 +224,17 @@ namespace FreeSql.Tests.Sqlite
|
||||
select.Where(a => 1 == 1).Count(out var count2);
|
||||
Assert.Equal(count, count2);
|
||||
Assert.Equal(0, select.Where(a => 1 == 2).Count());
|
||||
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Where(b => b.Id > 0 && b.Id == a.Id).Count()
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Master()
|
||||
@ -691,18 +702,58 @@ namespace FreeSql.Tests.Sqlite
|
||||
[Fact]
|
||||
public void Sum()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Sum(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Min()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Min(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Max()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Max(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void Avg()
|
||||
{
|
||||
var subquery = select.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
var subqueryList = select.ToList(a => new
|
||||
{
|
||||
all = a,
|
||||
count = select.Avg(b => b.Id)
|
||||
});
|
||||
}
|
||||
[Fact]
|
||||
public void As()
|
||||
|
@ -296,9 +296,24 @@ namespace FreeSql.Tests
|
||||
[Fact]
|
||||
public void Test1()
|
||||
{
|
||||
|
||||
|
||||
var teklksjdg = g.sqlite.Select<ZX.Model.CustomerCheckupGroup>()
|
||||
.Where(a => true && a.CustomerMember.Group == "xxx")
|
||||
.ToSql();
|
||||
.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
subquery = g.sqlite.Select<ZX.Model.CustomerCheckupGroup>().Where(b => b.Id == a.Id).First(b => b.Group)
|
||||
});
|
||||
|
||||
var teklksjdg333 = g.sqlite.Select<ZX.Model.CustomerCheckupGroup>()
|
||||
.Where(a => true && a.CustomerMember.Group == "xxx")
|
||||
.OrderBy(a => g.sqlite.Select<ZX.Model.CustomerCheckupGroup>().Where(b => b.Id == a.Id).First(b => b.Group))
|
||||
.ToSql(a => new
|
||||
{
|
||||
all = a,
|
||||
subquery = g.sqlite.Select<ZX.Model.CustomerCheckupGroup>().Where(b => b.Id == a.Id).First(b => b.Group)
|
||||
});
|
||||
|
||||
var sklgjlskdg = g.sqlite.Select<ZX.Model.CustomerMember>()
|
||||
.Where(a => a.CheckupGroups.AsSelect().Any())
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description>
|
||||
|
@ -550,12 +550,19 @@ namespace FreeSql.Internal
|
||||
}
|
||||
if (callType.FullName.StartsWith("FreeSql.ISelect`"))
|
||||
{ //子表查询
|
||||
if (exp3.Method.Name == "Any")
|
||||
{ //exists
|
||||
switch (exp3.Method.Name)
|
||||
{
|
||||
case "Any": //exists
|
||||
case "Count":
|
||||
case "Sum":
|
||||
case "Min":
|
||||
case "Max":
|
||||
case "Avg":
|
||||
case "First":
|
||||
var anyArgs = exp3.Arguments;
|
||||
var exp3Stack = new Stack<Expression>();
|
||||
var exp3tmp = exp3.Object;
|
||||
if (exp3tmp != null && anyArgs.Any())
|
||||
if (exp3.Method.Name == "Any" && exp3tmp != null && anyArgs.Any())
|
||||
exp3Stack.Push(Expression.Call(exp3tmp, callType.GetMethod("Where", anyArgs.Select(a => a.Type).ToArray()), anyArgs.ToArray()));
|
||||
while (exp3tmp != null)
|
||||
{
|
||||
@ -772,11 +779,36 @@ namespace FreeSql.Internal
|
||||
fsqlWhere.Invoke(fsql, new object[] { Expression.Lambda(fsqlWhereExp, fsqlWhereParam) });
|
||||
}
|
||||
asSelectBefores.Clear();
|
||||
|
||||
switch (exp3.Method.Name)
|
||||
{
|
||||
case "Any":
|
||||
var sql = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "1" })?.ToString();
|
||||
if (string.IsNullOrEmpty(sql) == false)
|
||||
return $"exists({sql.Replace("\r\n", "\r\n\t")})";
|
||||
break;
|
||||
case "Count":
|
||||
var sqlCount = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { "count(1)" })?.ToString();
|
||||
if (string.IsNullOrEmpty(sqlCount) == false)
|
||||
return $"({sqlCount.Replace("\r\n", "\r\n\t")})";
|
||||
break;
|
||||
case "Sum":
|
||||
case "Min":
|
||||
case "Max":
|
||||
case "Avg":
|
||||
var sqlSum = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { $"{exp3.Method.Name.ToLower()}({ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tsc)})" })?.ToString();
|
||||
if (string.IsNullOrEmpty(sqlSum) == false)
|
||||
return $"({sqlSum.Replace("\r\n", "\r\n\t")})";
|
||||
break;
|
||||
case "First":
|
||||
var sqlFirst = fsqlType.GetMethod("ToSql", new Type[] { typeof(string) })?.Invoke(fsql, new object[] { ExpressionLambdaToSql(exp3.Arguments.FirstOrDefault(), tsc) })?.ToString();
|
||||
if (string.IsNullOrEmpty(sqlFirst) == false)
|
||||
return $"({sqlFirst.Replace("\r\n", "\r\n\t")})";
|
||||
break;
|
||||
}
|
||||
}
|
||||
asSelectBefores.Clear();
|
||||
break;
|
||||
}
|
||||
}
|
||||
//var eleType = callType.GetElementType() ?? callType.GenericTypeArguments.FirstOrDefault();
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 Oracle 11</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 PostgreSQL 9.5</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net451</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next</Description>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.7.7</Version>
|
||||
<Version>0.7.8</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 Sqlite 3.0</Description>
|
||||
|
Loading…
x
Reference in New Issue
Block a user