mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
Merge branch 'master' of https://github.com/dotnetcore/FreeSql
This commit is contained in:
commit
db701f006a
58
.github/workflows/docfx.yml
vendored
Normal file
58
.github/workflows/docfx.yml
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
name: .NET Core Deploy Docfx
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup .NET Core
|
||||||
|
uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: 5.0.202
|
||||||
|
- name: Exclude example projects
|
||||||
|
run: dotnet sln FreeSql.sln remove Examples/**/*.csproj FreeSql.Tests/**/*.csproj
|
||||||
|
- name: Install dependencies
|
||||||
|
run: dotnet restore
|
||||||
|
- name: Build solution
|
||||||
|
run: dotnet build --configuration Release --no-restore
|
||||||
|
|
||||||
|
generate-docs:
|
||||||
|
runs-on: windows-latest
|
||||||
|
needs: build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup .NET Core
|
||||||
|
uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: 5.0.202
|
||||||
|
- name: Remove Examples
|
||||||
|
run: dotnet sln FreeSql.sln remove (ls -r Examples/**/*.csproj)
|
||||||
|
- name: Remove FreeSql.Tests
|
||||||
|
run: dotnet sln FreeSql.sln remove (ls -r FreeSql.Tests/**/*.csproj)
|
||||||
|
- name: Install dependencies
|
||||||
|
run: dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org --configfile $env:APPDATA\NuGet\NuGet.Config && dotnet restore
|
||||||
|
- name: Setup DocFX
|
||||||
|
uses: crazy-max/ghaction-chocolatey@v1
|
||||||
|
with:
|
||||||
|
args: install docfx --version 2.56.7
|
||||||
|
- name: DocFX Build
|
||||||
|
working-directory: docs
|
||||||
|
run: docfx docfx.json
|
||||||
|
continue-on-error: false
|
||||||
|
- name: Publish
|
||||||
|
if: github.event_name == 'push'
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: docs/_site
|
||||||
|
force_orphan: true
|
@ -63,6 +63,17 @@ namespace restful.Controllers
|
|||||||
return _songRepository.Select.WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(page, limit).ToListAsync();
|
return _songRepository.Select.WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(page, limit).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// curl -X GET "http://localhost:5000/restapi/Songs/GetPagingItems?key=FreeSql&PageNumber=2&PageSize=10" -H "accept: text/plain"
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pagingInfo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("GetPagingItems")]
|
||||||
|
public Task<List<Song>> GetPagingItems([FromQuery] string key, [FromQuery] PagingInfo pagingInfo)
|
||||||
|
{
|
||||||
|
return _songRepository.Select.WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(pagingInfo).ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public Task<Song> GetItem([FromRoute] int id)
|
public Task<Song> GetItem([FromRoute] int id)
|
||||||
{
|
{
|
||||||
|
57
Examples/repository_01/PagingInfo.cs
Normal file
57
Examples/repository_01/PagingInfo.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using FreeSql.Internal.Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace repository_01
|
||||||
|
{
|
||||||
|
public class PagingInfo : BasePagingInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 无参构造函数
|
||||||
|
/// </summary>
|
||||||
|
public PagingInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 当前为第1页,每页大小的构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageSize"></param>
|
||||||
|
public PagingInfo(int pageSize)
|
||||||
|
{
|
||||||
|
PageNumber = 1;
|
||||||
|
PageSize = pageSize;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 带当前页和每页大小的构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageNumber"></param>
|
||||||
|
/// <param name="pageSize"></param>
|
||||||
|
public PagingInfo(int pageNumber, int pageSize)
|
||||||
|
{
|
||||||
|
PageNumber = pageNumber;
|
||||||
|
PageSize = pageSize;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 当前有多少页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public long PageCount => PageSize == 0 ? 0 : (Count + PageSize - 1) / PageSize;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否有上一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool HasPrevious => PageNumber > 1 && PageNumber <= PageCount;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否有下一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool HasNext => PageNumber < PageCount;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否在第一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool IsFrist => PageNumber == 1;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否在最后一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool IsLast => PageNumber == PageCount;
|
||||||
|
}
|
||||||
|
}
|
@ -25,6 +25,18 @@ namespace restful.Controllers
|
|||||||
return _fsql.Select<Song>().WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(page, limit).ToListAsync();
|
return _fsql.Select<Song>().WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(page, limit).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// curl -X GET "http://localhost:5000/restapi/Songs/GetPagingItems?key=FreeSql&PageNumber=2&PageSize=10" -H "accept: text/plain"
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="pagingInfo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("GetPagingItems")]
|
||||||
|
public Task<List<Song>> GetPagingItems([FromQuery] string key, [FromQuery] PagingInfo pagingInfo)
|
||||||
|
{
|
||||||
|
return _fsql.Select<Song>().WhereIf(!string.IsNullOrEmpty(key), a => a.Title.Contains(key)).Page(pagingInfo).ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public Task<Song> GetItem([FromRoute] int id)
|
public Task<Song> GetItem([FromRoute] int id)
|
||||||
{
|
{
|
||||||
|
57
Examples/restful/PagingInfo.cs
Normal file
57
Examples/restful/PagingInfo.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using FreeSql.Internal.Model;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace restful
|
||||||
|
{
|
||||||
|
public class PagingInfo : BasePagingInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 无参构造函数
|
||||||
|
/// </summary>
|
||||||
|
public PagingInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 当前为第1页,每页大小的构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageSize"></param>
|
||||||
|
public PagingInfo(int pageSize)
|
||||||
|
{
|
||||||
|
PageNumber = 1;
|
||||||
|
PageSize = pageSize;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 带当前页和每页大小的构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageNumber"></param>
|
||||||
|
/// <param name="pageSize"></param>
|
||||||
|
public PagingInfo(int pageNumber, int pageSize)
|
||||||
|
{
|
||||||
|
PageNumber = pageNumber;
|
||||||
|
PageSize = pageSize;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 当前有多少页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public long PageCount => PageSize == 0 ? 0 : (Count + PageSize - 1) / PageSize;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否有上一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool HasPrevious => PageNumber > 1 && PageNumber <= PageCount;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否有下一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool HasNext => PageNumber < PageCount;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否在第一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool IsFrist => PageNumber == 1;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否在最后一页【只读】
|
||||||
|
/// </summary>
|
||||||
|
public bool IsLast => PageNumber == PageCount;
|
||||||
|
}
|
||||||
|
}
|
@ -2136,6 +2136,13 @@
|
|||||||
<param name="pageSize">每页多少</param>
|
<param name="pageSize">每页多少</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.ISelect0`2.Page(FreeSql.Internal.Model.BasePagingInfo)">
|
||||||
|
<summary>
|
||||||
|
分页
|
||||||
|
</summary>
|
||||||
|
<param name="pagingInfo">分页信息</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.ISelect0`2.Distinct">
|
<member name="M:FreeSql.ISelect0`2.Distinct">
|
||||||
<summary>
|
<summary>
|
||||||
查询数据前,去重
|
查询数据前,去重
|
||||||
@ -2607,6 +2614,13 @@
|
|||||||
<param name="pageSize">每页多少</param>
|
<param name="pageSize">每页多少</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.ISelectGrouping`2.Page(FreeSql.Internal.Model.BasePagingInfo)">
|
||||||
|
<summary>
|
||||||
|
分页
|
||||||
|
</summary>
|
||||||
|
<param name="pagingInfo">分页信息</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.ISelectGrouping`2.Count">
|
<member name="M:FreeSql.ISelectGrouping`2.Count">
|
||||||
<summary>
|
<summary>
|
||||||
查询的记录数量
|
查询的记录数量
|
||||||
@ -3976,6 +3990,26 @@
|
|||||||
<param name="commandTimeout"></param>
|
<param name="commandTimeout"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:FreeSql.Internal.Model.BasePagingInfo">
|
||||||
|
<summary>
|
||||||
|
分页信息
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Internal.Model.BasePagingInfo.PageNumber">
|
||||||
|
<summary>
|
||||||
|
第几页,从1开始
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Internal.Model.BasePagingInfo.PageSize">
|
||||||
|
<summary>
|
||||||
|
每页多少
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Internal.Model.BasePagingInfo.Count">
|
||||||
|
<summary>
|
||||||
|
查询的记录数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:FreeSql.Internal.Model.BatchProgressStatus`1.Data">
|
<member name="P:FreeSql.Internal.Model.BatchProgressStatus`1.Data">
|
||||||
<summary>
|
<summary>
|
||||||
当前操作的数据
|
当前操作的数据
|
||||||
|
@ -402,6 +402,13 @@ namespace FreeSql
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
TSelect Page(int pageNumber, int pageSize);
|
TSelect Page(int pageNumber, int pageSize);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分页
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pagingInfo">分页信息</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
TSelect Page(BasePagingInfo pagingInfo);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查询数据前,去重
|
/// 查询数据前,去重
|
||||||
/// <para>
|
/// <para>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using FreeSql.Internal.Model;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -101,6 +102,13 @@ namespace FreeSql
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
ISelectGrouping<TKey, TValue> Page(int pageNumber, int pageSize);
|
ISelectGrouping<TKey, TValue> Page(int pageNumber, int pageSize);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分页
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pagingInfo">分页信息</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
ISelectGrouping<TKey, TValue> Page(BasePagingInfo pagingInfo);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查询的记录数量
|
/// 查询的记录数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -179,7 +179,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
}
|
}
|
||||||
if (val == null && col.Attribute.MapType == typeof(string) && col.Attribute.IsNullable == false)
|
if (val == null && col.Attribute.MapType == typeof(string) && col.Attribute.IsNullable == false)
|
||||||
col.SetValue(data, val = "");
|
col.SetValue(data, val = "");
|
||||||
if (val == null && col.Attribute.MapType == typeof(byte[]) && col.Attribute.IsVersion)
|
if (col.Attribute.MapType == typeof(byte[]) && (val == null || (val is byte[] bytes && bytes.Length == 0)) && col.Attribute.IsVersion)
|
||||||
col.SetValue(data, val = Utils.GuidToBytes(Guid.NewGuid()));
|
col.SetValue(data, val = Utils.GuidToBytes(Guid.NewGuid()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -319,6 +319,13 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this.Limit(pageSize) as TSelect;
|
return this.Limit(pageSize) as TSelect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TSelect Page(BasePagingInfo pagingInfo)
|
||||||
|
{
|
||||||
|
pagingInfo.Count = this.Count();
|
||||||
|
this.Skip(Math.Max(0, pagingInfo.PageNumber - 1) * pagingInfo.PageSize);
|
||||||
|
return this.Limit(pagingInfo.PageSize) as TSelect;
|
||||||
|
}
|
||||||
|
|
||||||
public TSelect Skip(int offset)
|
public TSelect Skip(int offset)
|
||||||
{
|
{
|
||||||
_skip = offset;
|
_skip = offset;
|
||||||
|
@ -201,6 +201,14 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ISelectGrouping<TKey, TValue> Page(BasePagingInfo pagingInfo)
|
||||||
|
{
|
||||||
|
pagingInfo.Count = this.Count();
|
||||||
|
_groupBySkip = Math.Max(0, pagingInfo.PageNumber - 1) * pagingInfo.PageSize;
|
||||||
|
_groupByLimit = pagingInfo.PageSize;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public long Count() => _select._cancel?.Invoke() == true ? 0 : long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_select._connection, _select._transaction, CommandType.Text, $"select count(1) from ({this.ToSql($"1{_comonExp._common.FieldAsAlias("as1")}")}) fta", _select._commandTimeout, _select._params.ToArray())), out var trylng) ? trylng : default(long);
|
public long Count() => _select._cancel?.Invoke() == true ? 0 : long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(_select._connection, _select._transaction, CommandType.Text, $"select count(1) from ({this.ToSql($"1{_comonExp._common.FieldAsAlias("as1")}")}) fta", _select._commandTimeout, _select._params.ToArray())), out var trylng) ? trylng : default(long);
|
||||||
public ISelectGrouping<TKey, TValue> Count(out long count)
|
public ISelectGrouping<TKey, TValue> Count(out long count)
|
||||||
{
|
{
|
||||||
|
25
FreeSql/Internal/Model/BasePagingInfo.cs
Normal file
25
FreeSql/Internal/Model/BasePagingInfo.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace FreeSql.Internal.Model
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 分页信息
|
||||||
|
/// </summary>
|
||||||
|
public class BasePagingInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 第几页,从1开始
|
||||||
|
/// </summary>
|
||||||
|
public int PageNumber { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 每页多少
|
||||||
|
/// </summary>
|
||||||
|
public int PageSize { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 查询的记录数量
|
||||||
|
/// </summary>
|
||||||
|
public long Count { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -206,7 +206,7 @@ constantine,
|
|||||||
|
|
||||||
L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元、
|
L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元、
|
||||||
无名 100元、蛰伏 99.99元、TCYM 66.66元、MOTA 5元、LDZXG 30元、Near 30元、建爽 66元、无名 200元、LambertWu 100元、无名 18.88元、乌龙 50元、无名 100元、陳怼怼 66.66元、陳怼怼 66.66元、丁淮 100元、李伟坚-Excel催化剂 100元、白狐 6.66元、她微笑的脸y 30元、Eternity²º²¹ 588元、夜归柴门 88元、蔡易喋 666.66元、
|
无名 100元、蛰伏 99.99元、TCYM 66.66元、MOTA 5元、LDZXG 30元、Near 30元、建爽 66元、无名 200元、LambertWu 100元、无名 18.88元、乌龙 50元、无名 100元、陳怼怼 66.66元、陳怼怼 66.66元、丁淮 100元、李伟坚-Excel催化剂 100元、白狐 6.66元、她微笑的脸y 30元、Eternity²º²¹ 588元、夜归柴门 88元、蔡易喋 666.66元、
|
||||||
*礼 10元、litrpa 88元、Alax CHOW 200元、Daily 66元、k\*t 66元、蓝 100元
|
*礼 10元、litrpa 88元、Alax CHOW 200元、Daily 66元、k\*t 66元、蓝 100元、*菜 10元、生命如歌 1000元
|
||||||
|
|
||||||
> Thank you for your donation
|
> Thank you for your donation
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ constantine,
|
|||||||
|
|
||||||
L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元、
|
L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元、
|
||||||
无名 100元、蛰伏 99.99元、TCYM 66.66元、MOTA 5元、LDZXG 30元、Near 30元、建爽 66元、无名 200元、LambertWu 100元、无名 18.88元、乌龙 50元、无名 100元、陳怼怼 66.66元、陳怼怼 66.66元、丁淮 100元、李伟坚-Excel催化剂 100元、白狐 6.66元、她微笑的脸y 30元、Eternity²º²¹ 588元、夜归柴门 88元、蔡易喋 666.66元、
|
无名 100元、蛰伏 99.99元、TCYM 66.66元、MOTA 5元、LDZXG 30元、Near 30元、建爽 66元、无名 200元、LambertWu 100元、无名 18.88元、乌龙 50元、无名 100元、陳怼怼 66.66元、陳怼怼 66.66元、丁淮 100元、李伟坚-Excel催化剂 100元、白狐 6.66元、她微笑的脸y 30元、Eternity²º²¹ 588元、夜归柴门 88元、蔡易喋 666.66元、
|
||||||
*礼 10元、litrpa 88元、Alax CHOW 200元、Daily 66元、k*t 66元、蓝 100元
|
*礼 10元、litrpa 88元、Alax CHOW 200元、Daily 66元、k*t 66元、蓝 100元、*菜 10元、生命如歌 1000元
|
||||||
|
|
||||||
> 超级感谢你的打赏。
|
> 超级感谢你的打赏。
|
||||||
|
|
||||||
|
15
docs/.gitignore
vendored
Normal file
15
docs/.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
###############
|
||||||
|
# folder #
|
||||||
|
###############
|
||||||
|
/**/DROP/
|
||||||
|
/**/TEMP/
|
||||||
|
/**/packages/
|
||||||
|
/**/bin/
|
||||||
|
/**/obj/
|
||||||
|
_site
|
||||||
|
/freesql/provider/*.yml
|
||||||
|
/freesql/provider/.manifest
|
||||||
|
/freesql/repository/*.yml
|
||||||
|
/freesql/repository/.manifest
|
||||||
|
/api/*.yml
|
||||||
|
/api/.manifest
|
14
docs/README.md
Normal file
14
docs/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
### DocFX
|
||||||
|
- https://dotnet.github.io/docfx/tutorial/docfx_getting_started.html
|
||||||
|
|
||||||
|
|
||||||
|
run
|
||||||
|
|
||||||
|
```
|
||||||
|
docfx docfx_project\docfx.json --serve
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
docfx .\docfx.json --serve
|
||||||
|
```
|
2
docs/api/index.md
Normal file
2
docs/api/index.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# FreeSql
|
||||||
|
TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
|
137
docs/docfx.json
Normal file
137
docs/docfx.json
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
{
|
||||||
|
"metadata": [
|
||||||
|
{
|
||||||
|
"src": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"FreeSql/*.csproj"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/bin/**",
|
||||||
|
"**/obj/**"
|
||||||
|
],
|
||||||
|
"src": "../"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "api",
|
||||||
|
"disableGitFeatures": false,
|
||||||
|
"disableDefaultFilter": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"FreeSql.DbContext/*.csproj",
|
||||||
|
"FreeSql.Repository/*.csproj"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/bin/**",
|
||||||
|
"**/obj/**"
|
||||||
|
],
|
||||||
|
"src": "../"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "freesql/repository",
|
||||||
|
"disableGitFeatures": false,
|
||||||
|
"disableDefaultFilter": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"Providers/FreeSql.Provider.MySql/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.Dameng/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.KingbaseES/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.MsAccess/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.MySqlConnector/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.Odbc/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.Oracle/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.PostgreSQL/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.ShenTong*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.Sqlite/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.SqlServer/*.csproj",
|
||||||
|
"Providers/FreeSql.Provider.SqlServerForSystem/*.csproj"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/bin/**",
|
||||||
|
"**/obj/**"
|
||||||
|
],
|
||||||
|
"src": "../"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "freesql/provider",
|
||||||
|
"disableGitFeatures": false,
|
||||||
|
"disableDefaultFilter": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"build": {
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"api/**.yml",
|
||||||
|
"api/index.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"freesql/repository/**.yml",
|
||||||
|
"freesql/repository/index.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"freesql/provider/**.yml",
|
||||||
|
"freesql/provider/index.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"articles/**.md",
|
||||||
|
"articles/**/toc.yml",
|
||||||
|
"toc.yml",
|
||||||
|
"*.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"resource": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"images/**",
|
||||||
|
"styles/**"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"overwrite": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"Docs/**.md"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"obj/**",
|
||||||
|
"_site/**"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dest": "_site",
|
||||||
|
"globalMetadataFiles": [],
|
||||||
|
"fileMetadataFiles": [],
|
||||||
|
"template": [
|
||||||
|
"default"
|
||||||
|
],
|
||||||
|
"globalMetadata": {
|
||||||
|
"_appTitle": "FreeSql API Docs",
|
||||||
|
"_appLogoPath": "./images/logo.svg",
|
||||||
|
"_gitContribute": {
|
||||||
|
"repo": "https://github.com/dotnetcore/freesql",
|
||||||
|
"branch": "master"
|
||||||
|
},
|
||||||
|
"_enableSearch": true
|
||||||
|
},
|
||||||
|
"postProcessors": [],
|
||||||
|
"markdownEngineName": "markdig",
|
||||||
|
"noLangKeyword": false,
|
||||||
|
"keepFileLink": false,
|
||||||
|
"cleanupCacheHistory": false,
|
||||||
|
"disableGitFeatures": false
|
||||||
|
}
|
||||||
|
}
|
0
docs/freesql/provider/index.md
Normal file
0
docs/freesql/provider/index.md
Normal file
2
docs/freesql/repository/index.md
Normal file
2
docs/freesql/repository/index.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# repository
|
||||||
|
TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*!
|
104
docs/images/logo.svg
Normal file
104
docs/images/logo.svg
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="194px" height="51px" viewBox="0 0 194 51" enable-background="new 0 0 194 51" xml:space="preserve"> <image id="image0" width="194" height="51" x="0" y="0"
|
||||||
|
href="data:image/png;base64,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
|
||||||
|
xU8FhW9/pZBqc+F4VV0kIvWelaiqW4FzROSTTBlVb6w9LCIN5d/tUdWrROTZOq7HgD+p6g8ammWq
|
||||||
|
F1wHRCSL1VzG49sHJEQk/MkB2fPaDVwiIjXZUm1V9RbgR0AHEckoRlxVE3g/v/VE9Yx7IGS7zsCt
|
||||||
|
wOVAYYopo0rihXtxVwUndEmHnp6btnX1MZ9qkFYdsPufXpu+4qV3DmiqQ4FVNQksk1p2s6jqBfU1
|
||||||
|
EpFXaMRWnqp2BIY2UG1xtaeoIVrHUn8SCCJyQFXXAIMbopcDrBSRzao6thl4vSkiQT/2EFHv98zO
|
||||||
|
AC7AC0muCwpsAJ4TkfXAPxvRn3xV/Q7wZO0HVsu3UfX4DV5SUAjYp4wjNu7mwx30XmT9gO5AVpn8
|
||||||
|
IbBTRFIU4Wt8jcbib8D3axeYkpVUzZkRaqFrn3IhsXE/PvS9WhE6pZvITYEjN1zzaxx1UNUbq822
|
||||||
|
Q7B6nUz8h7O8k7EbCJCTiN8j1hxKAIfXCF/ja+QEqjoOeD799+u06gBmzbs4H70BFTvQZKW3N2VH
|
||||||
|
kXiBdw7riIlY3QfWpmWa6wdDvlaEr5FriKreBvxbsFtXwXUPh2CLePsYAe5UVf1CRELnFjQG/wvc
|
||||||
|
g6v3Q852KwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wOS0wMVQwMDowMDozOCswODowMARjC9UA
|
||||||
|
AAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDktMDFUMDA6MDA6MzgrMDg6MDB1PrNpAAAAIHRFWHRz
|
||||||
|
b2Z0d2FyZQBodHRwczovL2ltYWdlbWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVu
|
||||||
|
dDo6UGFnZXMAMaf/uy8AAAAXdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADQx/rw/iQAAABd0RVh0
|
||||||
|
VGh1bWI6OkltYWdlOjpXaWR0aAAxOTQ6z4Q9AAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2Uv
|
||||||
|
cG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE1OTg4ODk2MziXcjePAAAAEnRFWHRUaHVtYjo6
|
||||||
|
U2l6ZQA1Mzg4QkLGvIjcAAAARnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vYXBwL3RtcC9pbWFnZWxj
|
||||||
|
L2ltZ3ZpZXcyXzlfMTU5ODg2Mjg3Nzk0NjU4OTVfMjlfWzBdEGwPLgAAAABJRU5ErkJggg==" ></image>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.0 KiB |
11
docs/index.md
Normal file
11
docs/index.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
# FreeSql Document
|
||||||
|
|
||||||
|
#### [http://freesql.net](http://freesql.net)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, MsAccess orm.
|
||||||
|
|
||||||
|
- Github [https://github.com/dotnetcore/freesql](https://github.com/dotnetcore/freesql)
|
||||||
|
- Gitee [https://gitee.com/FreeSql/FreeSql-ORM](https://gitee.com/FreeSql/FreeSql-ORM)
|
11
docs/toc.yml
Normal file
11
docs/toc.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
- name: FreeSql Documentation
|
||||||
|
href: api/
|
||||||
|
homepage: api/index.md
|
||||||
|
|
||||||
|
- name: Repository Documentation
|
||||||
|
href: freesql/repository/
|
||||||
|
homepage: freesql/repository/index.md
|
||||||
|
|
||||||
|
- name: Provider Documentation
|
||||||
|
href: freesql/provider/
|
||||||
|
homepage: freesql/provider/index.md
|
Loading…
x
Reference in New Issue
Block a user