* TableAttribute 禁用继承

* 修改package id 避免下载到原版
* 发布到nuget.org
* xml注释文件 GenerateDocumentationFile
* 解决SqlServer唯一索引不可插入多个NULL的问题
* Microsoft.Data.SqlClient 升级至 2.1.7
* 对于已经配置了TableNameImpl的表,也支持AsTable重设表名
This commit is contained in:
nsnail 2023-02-04 15:16:14 +08:00 committed by tk
parent eed213716f
commit e46b474456
10 changed files with 122 additions and 21 deletions

View File

@ -9,7 +9,7 @@
<PackageTags>FreeSql ORM DbContext</PackageTags>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageId>$(AssemblyName)</PackageId>
<PackageId>$(AssemblyName).NS</PackageId>
<PackageIcon>logo.png</PackageIcon>
<Title>$(AssemblyName)</Title>
<IsPackable>true</IsPackable>
@ -17,7 +17,7 @@
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<Version>3.5.100-preview20240825</Version>
<Version>3.5.100-preview20240825-ns1</Version>
<PackageReadmeFile>readme.md</PackageReadmeFile>
</PropertyGroup>
@ -26,7 +26,7 @@
<None Include="../logo.png" Pack="true" PackagePath="\" />
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PropertyGroup>
<DocumentationFile>FreeSql.DbContext.xml</DocumentationFile>
<WarningLevel>3</WarningLevel>
<NoWarn>1701;1702;1591</NoWarn>

View File

@ -9,7 +9,10 @@ using System.Text.RegularExpressions;
namespace FreeSql.DataAnnotations
{
[AttributeUsage(AttributeTargets.Class)]
[AttributeUsage(AttributeTargets.Class
//禁用继承 nsnail@2022年11月23日14:38:45
, Inherited = false)]
public class TableAttribute : Attribute
{

View File

@ -10,6 +10,7 @@
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>FreeSql;ORM</PackageTags>
<PackageId>$(AssemblyName).NS</PackageId>
<PackageIcon>logo.png</PackageIcon>
<Title>$(AssemblyName)</Title>
<IsPackable>true</IsPackable>
@ -17,7 +18,7 @@
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<Version>3.5.100-preview20240825</Version>
<Version>3.5.100-preview20240825-ns1</Version>
<PackageReadmeFile>readme.md</PackageReadmeFile>
</PropertyGroup>
@ -67,7 +68,7 @@
</EmbeddedResource>
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PropertyGroup>
<DocumentationFile>FreeSql.xml</DocumentationFile>
<WarningLevel>3</WarningLevel>
<NoWarn>1701;1702;1591</NoWarn>

View File

@ -226,7 +226,8 @@ namespace FreeSql.Internal.CommonProvider
if (_tableRule == null && _table.AsTableImpl == null) return _commonUtils.GetEntityTableAopName(_table, true);
var tbname = _table?.DbName ?? "";
string newname = null;
if (_table.AsTableImpl != null)
// 对于已经配置了TableNameImpl的表也支持AsTable重设表名 by nsnail@2024年8月26日11:10:22
if (_table.AsTableImpl != null && _tableRule == null)
{
if (_source.Any())
newname = _table.AsTableImpl.GetTableNameByColumnValue(_table.AsTableColumn.GetValue(_source.FirstOrDefault()));

View File

@ -567,7 +567,8 @@ namespace FreeSql.Internal.CommonProvider
if (_tableRule == null && _table.AsTableImpl == null) return _commonUtils.GetEntityTableAopName(_table, true);
var tbname = _table?.DbName ?? "";
string newname = null;
if (_table.AsTableImpl != null)
// 对于已经配置了TableNameImpl的表也支持AsTable重设表名 by nsnail@2024年8月26日11:10:22
if (_table.AsTableImpl != null && _tableRule == null)
{
if (_source.Any())
newname = _table.AsTableImpl.GetTableNameByColumnValue(_table.AsTableColumn.GetValue(_source.FirstOrDefault()));

View File

@ -898,7 +898,8 @@ namespace FreeSql.Internal.CommonProvider
if (_tableRule == null && _table.AsTableImpl == null) return _commonUtils.GetEntityTableAopName(_table, true);
var tbname = _table?.DbName ?? "";
string newname = null;
if (_table.AsTableImpl != null)
// 对于已经配置了TableNameImpl的表也支持AsTable重设表名 by nsnail@2024年8月26日11:10:22
if (_table.AsTableImpl != null && _tableRule == null)
{
if (_source.Any())
newname = _table.AsTableImpl.GetTableNameByColumnValue(_table.AsTableColumn.GetValue(_source.FirstOrDefault()));

View File

@ -10,7 +10,7 @@
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>FreeSql;ORM;SqlServer;mssql</PackageTags>
<PackageId>$(AssemblyName)</PackageId>
<PackageId>$(AssemblyName).NS</PackageId>
<PackageIcon>logo.png</PackageIcon>
<Title>$(AssemblyName)</Title>
<IsPackable>true</IsPackable>
@ -18,10 +18,16 @@
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
<Version>3.5.100-preview20240825</Version>
<Version>3.5.100-preview20240825-ns1</Version>
<PackageReadmeFile>readme.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<DocumentationFile>FreeSql.Provider.SqlServer.xml</DocumentationFile>
<WarningLevel>3</WarningLevel>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<None Include="../../readme.md" Pack="true" PackagePath="\" />
<None Include="../../logo.png" Pack="true" PackagePath="\" />

View File

@ -228,7 +228,17 @@ ELSE
if (tbcol.IsDesc) sb.Append(" DESC");
sb.Append(", ");
}
sb.Remove(sb.Length - 2, 2).Append(");\r\n");
// sb.Remove(sb.Length - 2, 2).Append(");\r\n");
// ↑ 解决唯一索引不可插入多个NULL的问题 ↓
sb.Remove(sb.Length - 2, 2).Append(") WHERE ");
foreach (var tbcol in uk.Columns)
{
sb.Append(_commonUtils.QuoteSqlName(tbcol.Column.Attribute.Name));
sb.Append(" IS NOT NULL");
sb.Append(" AND ");
}
sb.Remove(sb.Length - 5, 5).Append(";\r\n");
// nsnail@2023年2月4日14:54:52 ↑
}
//备注
foreach (var tbcol in tb.ColumnsByPosition)
@ -449,7 +459,17 @@ use [" + database + "];", tboldname ?? tbname);
if (tbcol.IsDesc) sb.Append(" DESC");
sb.Append(", ");
}
sb.Remove(sb.Length - 2, 2).Append(");\r\n");
// sb.Remove(sb.Length - 2, 2).Append(");\r\n");
// ↑ 解决唯一索引不可插入多个NULL的问题 ↓
sb.Remove(sb.Length - 2, 2).Append(") WHERE ");
foreach (var tbcol in uk.Columns)
{
sb.Append(_commonUtils.QuoteSqlName(tbcol.Column.Attribute.Name));
sb.Append(" IS NOT NULL");
sb.Append(" AND ");
}
sb.Remove(sb.Length - 5, 5).Append(";\r\n");
// nsnail@2023年2月4日14:54:52 ↑
}
sb.Append("COMMIT;\r\n");
}

View File

@ -10,7 +10,7 @@
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>FreeSql;ORM;sqlite</PackageTags>
<PackageId>$(AssemblyName)</PackageId>
<PackageId>$(AssemblyName).NS</PackageId>
<PackageIcon>logo.png</PackageIcon>
<Title>$(AssemblyName)</Title>
<IsPackable>true</IsPackable>
@ -18,10 +18,16 @@
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<Version>3.5.100-preview20240825</Version>
<Version>3.5.100-preview20240825-ns1</Version>
<PackageReadmeFile>readme.md</PackageReadmeFile>
</PropertyGroup>
<PropertyGroup>
<DocumentationFile>FreeSql.Provider.Sqlite.xml</DocumentationFile>
<WarningLevel>3</WarningLevel>
<NoWarn>1701;1702;1591</NoWarn>
</PropertyGroup>
<ItemGroup>
<None Include="../../readme.md" Pack="true" PackagePath="\"/>
<None Include="../../logo.png" Pack="true" PackagePath="\" />

62
nuget/build-and-push.ps1 Normal file
View File

@ -0,0 +1,62 @@
# 定义参数
Param(
# Nuget APIKey
[string] $apikey
)
if ($apikey -eq $null -or $apikey -eq "")
{
Write-Error "必须指定apiKey";
return;
}
rm -r ../FreeSql.DbContext/bin/Release
dotnet build -c Release ../FreeSql.sln
$files = Get-ChildItem -Path ../FreeSql/bin/Release -Filter *-ns*.nupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../FreeSql/bin/Release -Filter *-ns*.snupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../Providers/FreeSql.Provider.Sqlite/bin/Release -Filter *-ns*.nupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../Providers/FreeSql.Provider.Sqlite/bin/Release -Filter *-ns*.snupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../Providers/FreeSql.Provider.SqlServer/bin/Release -Filter *-ns*.nupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../Providers/FreeSql.Provider.SqlServer/bin/Release -Filter *-ns*.snupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../FreeSql.DbContext/bin/Release -Filter *-ns*.nupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}
$files = Get-ChildItem -Path ../FreeSql.DbContext/bin/Release -Filter *-ns*.snupkg
foreach($file in $files)
{
dotnet nuget push $file.fullName --skip-duplicate --api-key $apikey --source https://api.nuget.org/v3/index.json
}