mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
折腾 net45 版本,增加 MySqlConnector 实现
This commit is contained in:
parent
afae7ce431
commit
62fd3b8f97
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 扩展包,可实现【延时加载】属性.</Description>
|
||||
|
23
FreeSql.sln
23
FreeSql.sln
@ -30,15 +30,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.MySql", "P
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Oracle", "Providers\FreeSql.Provider.Oracle\FreeSql.Provider.Oracle.csproj", "{3DE45286-B0DB-4D74-B322-F5467FB2EF53}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.Sqlite", "Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj", "{559B6369-1868-4A06-A590-F80BA7B80A1B}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Sqlite", "Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj", "{559B6369-1868-4A06-A590-F80BA7B80A1B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.SqlServer", "Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj", "{B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.SqlServer", "Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj", "{B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.PostgreSQL", "Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.csproj", "{22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.PostgreSQL", "Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.csproj", "{22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Extensions.LazyLoading", "Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj", "{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.LazyLoading", "Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj", "{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.MySqlConnector", "Providers\FreeSql.Provider.MySqlConnector\FreeSql.Provider.MySqlConnector.csproj", "{D2A41321-5E84-410B-B25C-3AA122D4CA27}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -206,6 +208,18 @@ Global
|
||||
{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -221,6 +235,7 @@ Global
|
||||
{B61AAC9E-59E9-4F47-BBE3-97AC24112EFE} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
||||
{22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
||||
{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
|
||||
{D2A41321-5E84-410B-B25C-3AA122D4CA27} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {089687FD-5D25-40AB-BA8A-A10D1E137F98}
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.6.2</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>
|
||||
@ -23,7 +23,8 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SafeObjectPool" Version="2.0.1" />
|
||||
<PackageReference Include="SafeObjectPool" Version="2.0.2" />
|
||||
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -108,6 +108,7 @@ namespace FreeSql {
|
||||
switch(_dataType) {
|
||||
case DataType.MySql:
|
||||
type = Type.GetType("FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySql")?.MakeGenericType(typeof(TMark));
|
||||
if (type == null) type = Type.GetType("FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector")?.MakeGenericType(typeof(TMark));
|
||||
if (type == null) throw new Exception("缺少 FreeSql 数据库实现包:FreeSql.Provider.MySql.dll,可前往 nuget 下载");
|
||||
break;
|
||||
case DataType.SqlServer: type = Type.GetType("FreeSql.SqlServer.SqlServerProvider`1,FreeSql.Provider.SqlServer")?.MakeGenericType(typeof(TMark));
|
||||
|
@ -34,7 +34,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
flag = sbflag.ToString();
|
||||
}
|
||||
ret.Add((T)Utils.ExecuteArrayRowReadClassOrTuple(flag, type, indexes, dr, 0, _util).Value);
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, cmdType, cmdText, cmdParms);
|
||||
return ret;
|
||||
}
|
||||
@ -88,7 +88,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
ret2.Add((T2)Utils.ExecuteArrayRowReadClassOrTuple(flag2, type2, indexes2, dr, 0, _util).Value);
|
||||
break;
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, cmdType, cmdText, cmdParms);
|
||||
return (ret1, ret2);
|
||||
}
|
||||
@ -162,7 +162,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
ret3.Add((T3)Utils.ExecuteArrayRowReadClassOrTuple(flag3, type3, indexes3, dr, 0, _util).Value);
|
||||
break;
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, cmdType, cmdText, cmdParms);
|
||||
return (ret1, ret2, ret3);
|
||||
}
|
||||
@ -256,7 +256,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
ret4.Add((T4)Utils.ExecuteArrayRowReadClassOrTuple(flag4, type4, indexes4, dr, 0, _util).Value);
|
||||
break;
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, cmdType, cmdText, cmdParms);
|
||||
return (ret1, ret2, ret3, ret4);
|
||||
}
|
||||
@ -370,7 +370,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
ret5.Add((T5)Utils.ExecuteArrayRowReadClassOrTuple(flag5, type5, indexes5, dr, 0, _util).Value);
|
||||
break;
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, cmdType, cmdText, cmdParms);
|
||||
return (ret1, ret2, ret3, ret4, ret5);
|
||||
}
|
||||
|
@ -285,7 +285,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
await _orm.Ado.ExecuteReaderAsync(_connection, _transaction, dr => {
|
||||
var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, dr, 0, _commonUtils);
|
||||
ret.Add((TTuple)read.Value);
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, CommandType.Text, sql, dbParms);
|
||||
} catch (Exception ex) {
|
||||
exception = ex;
|
||||
@ -337,7 +337,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
foreach (var other in otherData)
|
||||
other.retlist.Add(_commonExpression.ReadAnonymous(other.read, dr, ref idx, false));
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, CommandType.Text, sql, dbParms);
|
||||
} catch (Exception ex) {
|
||||
exception = ex;
|
||||
@ -431,7 +431,7 @@ namespace FreeSql.Internal.CommonProvider {
|
||||
await _orm.Ado.ExecuteReaderAsync(_connection, _transaction, dr => {
|
||||
var index = -1;
|
||||
ret.Add((TReturn)_commonExpression.ReadAnonymous(af.map, dr, ref index, false));
|
||||
return Task.CompletedTask;
|
||||
return Task.FromResult(false);
|
||||
}, CommandType.Text, sql, dbParms);
|
||||
} catch (Exception ex) {
|
||||
exception = ex;
|
||||
|
@ -83,6 +83,11 @@ namespace FreeSql.Internal {
|
||||
};
|
||||
if (colattr._IsNullable == null) colattr._IsNullable = tp?.isnullable;
|
||||
if (string.IsNullOrEmpty(colattr.DbType)) colattr.DbType = tp?.dbtypeFull ?? "varchar(255)";
|
||||
if (colattr.DbType.StartsWith("set(") || colattr.DbType.StartsWith("enum(")) {
|
||||
var leftBt = colattr.DbType.IndexOf('(');
|
||||
colattr.DbType = colattr.DbType.Substring(0, leftBt).ToUpper() + colattr.DbType.Substring(leftBt);
|
||||
}
|
||||
else
|
||||
colattr.DbType = colattr.DbType.ToUpper();
|
||||
|
||||
if (tp != null && tp.Value.isnullable == null) colattr.IsNullable = tp.Value.dbtypeFull.Contains("NOT NULL") == false;
|
||||
@ -1164,7 +1169,14 @@ namespace FreeSql.Internal {
|
||||
}
|
||||
var typeOrg = type;
|
||||
if (type.IsNullableType()) type = type.GenericTypeArguments.First();
|
||||
if (type.IsEnum) return Expression.Return(returnTarget, Expression.Call(MethodEnumParse, Expression.Constant(type, typeof(Type)), Expression.Call(MethodToString, valueExp), Expression.Constant(true, typeof(bool))));
|
||||
if (type.IsEnum)
|
||||
return Expression.Block(
|
||||
Expression.IfThenElse(
|
||||
Expression.Equal(Expression.TypeAs(valueExp, typeof(string)), Expression.Constant(string.Empty)),
|
||||
Expression.Return(returnTarget, Expression.Convert(Expression.Default(type), typeof(object))),
|
||||
Expression.Return(returnTarget, Expression.Call(MethodEnumParse, Expression.Constant(type, typeof(Type)), Expression.Call(MethodToString, valueExp), Expression.Constant(true, typeof(bool))))
|
||||
)
|
||||
);
|
||||
Expression tryparseExp = null;
|
||||
Expression tryparseBooleanExp = null;
|
||||
ParameterExpression tryparseVarExp = null;
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description>
|
||||
@ -18,7 +18,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MySql.Data" Version="8.0.15" />
|
||||
<PackageReference Include="MySql.Data" Version="8.0.16" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
6
Providers/FreeSql.Provider.MySqlConnector/Class1.cs
Normal file
6
Providers/FreeSql.Provider.MySqlConnector/Class1.cs
Normal file
@ -0,0 +1,6 @@
|
||||
using System;
|
||||
|
||||
namespace FreeSql.Provider.MySqlConnector {
|
||||
public class Class1 {
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description>
|
||||
<PackageProjectUrl>https://github.com/2881099/FreeSql</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/2881099/FreeSql</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageTags>FreeSql;ORM</PackageTags>
|
||||
<PackageId>$(AssemblyName)</PackageId>
|
||||
<Title>$(AssemblyName)</Title>
|
||||
<IsPackable>true</IsPackable>
|
||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MySqlConnector" Version="0.56.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="../FreeSql.Provider.MySql/**/*.cs" Exclude="../FreeSql.Provider.MySql/obj/**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 Oracle 11</Description>
|
||||
@ -17,8 +17,12 @@
|
||||
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="2.18.5" />
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
|
||||
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="2.19.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
|
||||
<PackageReference Include="Oracle.ManagedDataAccess" Version="19.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 PostgreSQL 9.5</Description>
|
||||
@ -18,10 +18,11 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
|
||||
<PackageReference Include="Npgsql.LegacyPostgis" Version="4.0.5" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||
<PackageReference Include="Npgsql.LegacyPostgis" Version="4.0.7" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||
</ItemGroup>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net451</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next</Description>
|
||||
@ -18,9 +18,10 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.6.1" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\FreeSql\FreeSql.csproj" />
|
||||
</ItemGroup>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<Version>0.6.1</Version>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.6.2</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql 数据库实现,基于 Sqlite 3.0</Description>
|
||||
|
26
readme.md
26
readme.md
@ -31,16 +31,21 @@ FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程
|
||||
| [FreeSql.AdminLTE](https://github.com/2881099/FreeSql.AdminLTE) | [](https://www.nuget.org/packages/FreeSql.AdminLTE) | [](https://www.nuget.org/stats/packages/FreeSql.AdminLTE?groupby=Version) |
|
||||
| [FreeSql.Connection.Extensions](https://github.com/2881099/FreeSql.Connection.Extensions) | [](https://www.nuget.org/packages/FreeSql.Connection.Extensions) | [](https://www.nuget.org/stats/packages/FreeSql.Connection.Extensions?groupby=Version) |
|
||||
|
||||
- FreeSql 是核心,提供原始用法;
|
||||
- FreeSql.DbContext 是扩展包,提供面向对象的用法(像EF);
|
||||
- FreeSql.Repository 也是扩展包,提供仓储+工作单元用法;
|
||||
- FreeSql.Connection.Extensions 也是扩展包,提供像 Dapper 一样的用法;
|
||||
|
||||
# Providers
|
||||
|
||||
| Package Name | NuGet | Downloads |
|
||||
|--------------| ------- | ---- |
|
||||
| FreeSql.Provider.MySql | [](https://www.nuget.org/packages/FreeSql.Provider.MySql) | [](https://www.nuget.org/stats/packages/FreeSql.Provider.MySql?groupby=Version) |
|
||||
| FreeSql.Provider.PostgreSQL | [](https://www.nuget.org/packages/FreeSql.Provider.PostgreSQL) | [](https://www.nuget.org/stats/packages/FreeSql.Provider.PostgreSQL?groupby=Version) |
|
||||
| FreeSql.Provider.SqlServer | [](https://www.nuget.org/packages/FreeSql.Provider.SqlServer) | [](https://www.nuget.org/stats/packages/FreeSql.Provider.SqlServer?groupby=Version) |
|
||||
| FreeSql.Provider.Sqlite | [](https://www.nuget.org/packages/FreeSql.Provider.Sqlite) | [](https://www.nuget.org/stats/packages/FreeSql.Provider.Sqlite?groupby=Version) |
|
||||
| FreeSql.Provider.Oracle | [](https://www.nuget.org/packages/FreeSql.Provider.Oracle) | [](https://www.nuget.org/stats/packages/FreeSql.Provider.Oracle?groupby=Version) |
|
||||
| FreeSql.Extensions.LazyLoading | [](https://www.nuget.org/packages/FreeSql.Extensions.LazyLoading) | [](https://www.nuget.org/stats/packages/FreeSql.Extensions.LazyLoading?groupby=Version) |
|
||||
| Package Name | Version |
|
||||
|--------------| ------- |
|
||||
| FreeSql.Provider.MySql | NETStandard2.0、net452 |
|
||||
| FreeSql.Provider.PostgreSQL | NETStandard2.0、net45 |
|
||||
| FreeSql.Provider.SqlServer | NETStandard2.0、net451 |
|
||||
| FreeSql.Provider.Sqlite | NETStandard2.0、net45 |
|
||||
| FreeSql.Provider.Oracle | NETStandard2.0、net45 |
|
||||
| FreeSql.Extensions.LazyLoading | NETStandard2.0 |
|
||||
|
||||
# Quick start
|
||||
|
||||
@ -132,11 +137,6 @@ var t5 = fsql.Select<Song>()
|
||||
```
|
||||
更多前往Wiki:[《表达式函数》](https://github.com/2881099/FreeSql/wiki/%e8%a1%a8%e8%be%be%e5%bc%8f%e5%87%bd%e6%95%b0)
|
||||
|
||||
- IFreeSql 是核心,提供原始用法;
|
||||
- FreeSql.DbContext 是扩展包,提供面向对象的用法(像EF);
|
||||
- FreeSql.Repository 也是扩展包,提供仓储+工作单元用法(实际上和 DbContext 是一个扩展包);
|
||||
- FreeSql.Connection.Extensions 也是扩展包,提供像 Dapper 一样的用法;
|
||||
|
||||
# Repository & UnitOfWork
|
||||
> dotnet add package FreeSql.Repository
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user