Skip to content

Commit 13c7c72

Browse files
committed
Merge branch 'develop'
2 parents 20f792c + 64ad6bb commit 13c7c72

26 files changed

+439
-159
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
[![Build Status](https://img.shields.io/github/license/simplestack/simplestack.orm)](https://www.github.com/simplestack/simplestack.orm)
55
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/simplestack/simplestack.orm)](https://github.com/SimpleStack/simplestack.orm/releases/)
66
![GitHub top language](https://img.shields.io/github/languages/top/simplestack/simplestack.orm)
7-
![Maintenance](https://img.shields.io/maintenance/yes/2020)
7+
![Maintenance](https://img.shields.io/maintenance/yes/2022)
88
[![Twitter URL](https://img.shields.io/twitter/url?label=Follow%20us&style=social&url=https%3A%2F%2Ftwitter.com%2Fsimplestackproj)](https://twitter.com/simplestackproj)
99

1010
[SimpleStack.Orm](https://simplestack.org) is a layer on top of the wonderful [Dapper](https://github.com/StackExchange/dapper-dot-net/) project that generate SQL queries based on lambda expressions. It is designed to persist types with a minimal amount of intrusion and configuration. All the generated sql queries are using parameters to improve performance and security.

src/SimpleStack.Orm.Logging.MicrosoftExtensions/SimpleStack.Orm.Logging.MicrosoftExtensions.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp2.1</TargetFramework>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<PackageVersion>1.2.4</PackageVersion>
56
</PropertyGroup>
67

78
<ItemGroup>

src/SimpleStack.Orm.MySQL/MySqlDialectProvider.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Data;
44
using System.Data.Common;
55
using System.Linq;
6+
using System.Text;
67
using Dapper;
78
using MySql.Data.MySqlClient;
89
using SimpleStack.Orm.Expressions.Statements;
@@ -190,5 +191,28 @@ protected virtual DbType GetDbType(string dataType, int? length, string columnTy
190191
return DbType.Object;
191192
}
192193
}
194+
195+
public override CommandDefinition ToInsertStatement(InsertStatement insertStatement, CommandFlags flags)
196+
{
197+
var query = new StringBuilder("INSERT INTO ");
198+
query.Append(insertStatement.TableName);
199+
200+
query.Append(" (");
201+
if (insertStatement.InsertFields.Any())
202+
{
203+
query.Append(insertStatement.InsertFields.Aggregate((x, y) => x + ", " + y));
204+
}
205+
query.Append(" ) VALUES (");
206+
207+
if (insertStatement.Parameters.Any())
208+
{
209+
query.Append(insertStatement.Parameters.Select(x => x.Key).Aggregate((x, y) => x + ", " + y));
210+
}
211+
query.Append(");");
212+
213+
query.Append(insertStatement.HasIdentity ? SelectIdentitySql : "SELECT 0");
214+
215+
return new CommandDefinition(query.ToString(), insertStatement.Parameters, flags: flags);
216+
}
193217
}
194218
}

src/SimpleStack.Orm.MySQL/SimpleStack.Orm.MySQL.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<Version>1.2.0-beta95</Version>
1717
<AssemblyVersion>1.2.0.0</AssemblyVersion>
1818
<FileVersion>1.2.0.0</FileVersion>
19-
<PackageVersion>1.2.3</PackageVersion>
19+
<PackageVersion>1.2.4</PackageVersion>
2020
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2121
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>
2222
<RepositoryType>git</RepositoryType>
@@ -27,7 +27,7 @@
2727
</ItemGroup>
2828

2929
<ItemGroup>
30-
<PackageReference Include="MySql.Data" Version="8.0.20" />
30+
<PackageReference Include="MySql.Data" Version="8.0.28" />
3131
</ItemGroup>
3232

3333
</Project>

src/SimpleStack.Orm.MySQLConnector/MySqlConnectorDialectProvider.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
using System.Data;
44
using System.Data.Common;
55
using System.Linq;
6+
using System.Text;
67
using Dapper;
78
using MySqlConnector;
9+
using SimpleStack.Orm.Expressions.Statements;
810
using SimpleStack.Orm.MySQL;
911

1012
namespace SimpleStack.Orm.MySQLConnector
@@ -192,5 +194,28 @@ protected virtual DbType GetDbType(string dataType, int? length, string columnTy
192194
return DbType.Object;
193195
}
194196
}
197+
198+
public override CommandDefinition ToInsertStatement(InsertStatement insertStatement, CommandFlags flags)
199+
{
200+
var query = new StringBuilder("INSERT INTO ");
201+
query.Append(insertStatement.TableName);
202+
203+
query.Append(" (");
204+
if (insertStatement.InsertFields.Any())
205+
{
206+
query.Append(insertStatement.InsertFields.Aggregate((x, y) => x + ", " + y));
207+
}
208+
query.Append(" ) VALUES (");
209+
210+
if (insertStatement.Parameters.Any())
211+
{
212+
query.Append(insertStatement.Parameters.Select(x => x.Key).Aggregate((x, y) => x + ", " + y));
213+
}
214+
query.Append(");");
215+
216+
query.Append(insertStatement.HasIdentity ? SelectIdentitySql : "SELECT 0");
217+
218+
return new CommandDefinition(query.ToString(), insertStatement.Parameters, flags: flags);
219+
}
195220
}
196221
}

src/SimpleStack.Orm.MySQLConnector/SimpleStack.Orm.MySQLConnector.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<Version>1.2.0-beta95</Version>
1515
<AssemblyVersion>1.2.0.0</AssemblyVersion>
1616
<FileVersion>1.2.0.0</FileVersion>
17-
<PackageVersion>1.2.3</PackageVersion>
17+
<PackageVersion>1.2.4</PackageVersion>
1818
<TargetFramework>netstandard2.0</TargetFramework>
1919
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2020
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>
@@ -25,7 +25,7 @@
2525
</ItemGroup>
2626

2727
<ItemGroup>
28-
<PackageReference Include="MySqlConnector" Version="1.0.0" />
28+
<PackageReference Include="MySqlConnector" Version="2.1.6" />
2929
</ItemGroup>
3030

3131
<ItemGroup>

src/SimpleStack.Orm.PostgreSQL/PostgreSQLDialectProvider.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
using System.Text;
88
using Dapper;
99
using Npgsql;
10-
using SimpleStack.Orm.Attributes;
11-
using SimpleStack.Orm.Expressions;
1210

1311
namespace SimpleStack.Orm.PostgreSQL
1412
{

src/SimpleStack.Orm.PostgreSQL/SimpleStack.Orm.PostgreSQL.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<Version>1.2.0-beta95</Version>
1616
<AssemblyVersion>1.2.1.0</AssemblyVersion>
1717
<FileVersion>1.2.1.0</FileVersion>
18-
<PackageVersion>1.2.3</PackageVersion>
18+
<PackageVersion>1.2.4</PackageVersion>
1919
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2020
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>
2121
</PropertyGroup>
@@ -25,7 +25,7 @@
2525
</ItemGroup>
2626

2727
<ItemGroup>
28-
<PackageReference Include="Npgsql" Version="4.1.4" />
28+
<PackageReference Include="Npgsql" Version="6.0.3" />
2929
</ItemGroup>
3030

3131
</Project>

src/SimpleStack.Orm.SDSQLite/SimpleStack.Orm.SDSQLite.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<Version>1.2.0-beta95</Version>
1616
<AssemblyVersion>1.2.0.0</AssemblyVersion>
1717
<FileVersion>1.2.0.0</FileVersion>
18-
<PackageVersion>1.2.3</PackageVersion>
18+
<PackageVersion>1.2.4</PackageVersion>
1919
<RootNamespace>SimpleStack.Orm.SDSQlite</RootNamespace>
2020
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2121
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>

src/SimpleStack.Orm.SDSQLite/SqliteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public override IEnumerable<IColumnDefinition> GetTableColumnDefinitions(IDbConn
135135
Name = c.name,
136136
Definition = c.type,
137137
Nullable = c.notnull == 1,
138-
PrimaryKey = c.pk == 1,
138+
PrimaryKey = c.pk > 0,
139139
DefaultValue = c.dflt_value,
140140
Precision = precision,
141141
Scale = scale,

src/SimpleStack.Orm.SQLServer/SimpleStack.Orm.SQLServer.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<Version>1.2.0-beta95</Version>
1515
<AssemblyVersion>1.2.0.0</AssemblyVersion>
1616
<FileVersion>1.2.0.0</FileVersion>
17-
<PackageVersion>1.2.3</PackageVersion>
17+
<PackageVersion>1.2.4</PackageVersion>
1818
<TargetFramework>netstandard2.0</TargetFramework>
1919
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2020
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>
@@ -25,7 +25,7 @@
2525
</ItemGroup>
2626

2727
<ItemGroup>
28-
<PackageReference Include="Microsoft.Data.SqlClient" Version="2.0.0" />
28+
<PackageReference Include="Microsoft.Data.SqlClient" Version="4.1.0" />
2929
</ItemGroup>
3030

3131
</Project>

src/SimpleStack.Orm.SQLServer/SqlServerOrmLiteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ INNER JOIN sys.index_columns AS ic
272272
Name = c.COLUMN_NAME,
273273
Definition = c.DATA_TYPE,
274274
DefaultValue = c.COLUMN_DEFAULT,
275-
PrimaryKey = i != null && i.IS_PRIMARY_KEY ?? false,
275+
PrimaryKey = i != null && i.IS_PRIMARYKEY ?? false,
276276
Unique = i != null && i.IS_UNIQUE ?? false,
277277
Length = (c.DATA_TYPE == "nvarchar" || c.DATA_TYPE == "ntext" || c.DATA_TYPE == "nchar") ? c.CHARACTER_MAXIMUM_LENGTH / 2 : c.CHARACTER_MAXIMUM_LENGTH,
278278
Nullable = c.IS_NULLABLE,

src/SimpleStack.Orm.SQLite/SimpleStack.Orm.SQLite.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<Version>1.2.0-beta95</Version>
1616
<AssemblyVersion>1.2.0.0</AssemblyVersion>
1717
<FileVersion>1.2.0.0</FileVersion>
18-
<PackageVersion>1.2.3</PackageVersion>
18+
<PackageVersion>1.2.4</PackageVersion>
1919
<PackageProjectUrl>https://simplestack.org/</PackageProjectUrl>
2020
<RepositoryUrl>https://github.com/SimpleStack/simplestack.orm</RepositoryUrl>
2121
</PropertyGroup>

src/SimpleStack.Orm.SQLite/SqliteDialectProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public override IEnumerable<IColumnDefinition> GetTableColumnDefinitions(IDbConn
135135
Name = c.name,
136136
Definition = c.type,
137137
Nullable = c.notnull == 1,
138-
PrimaryKey = c.pk == 1,
138+
PrimaryKey = c.pk > 0,
139139
DefaultValue = c.dflt_value,
140140
Precision = precision,
141141
Scale = scale,

src/SimpleStack.Orm/DialectProviderBase.cs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,20 @@ public virtual CommandDefinition ToInsertStatement(InsertStatement insertStateme
203203
{
204204
var query = new StringBuilder("INSERT INTO ");
205205
query.Append(insertStatement.TableName);
206-
query.Append(" (");
207-
query.Append(insertStatement.InsertFields.Aggregate((x, y) => x + ", " + y));
208-
query.Append(" ) VALUES (");
209-
query.Append(insertStatement.Parameters.Select(x => x.Key).Aggregate((x, y) => x + ", " + y));
210-
query.Append(")");
206+
if (insertStatement.InsertFields.Any())
207+
{
208+
query.Append(" (");
209+
query.Append(insertStatement.InsertFields.Aggregate((x, y) => x + ", " + y));
210+
query.Append(" ) VALUES (");
211+
query.Append(insertStatement.Parameters.Select(x => x.Key).Aggregate((x, y) => x + ", " + y));
212+
query.Append(");");
213+
}
214+
else
215+
{
216+
query.Append(" DEFAULT VALUES; ");
217+
}
218+
219+
query.Append(insertStatement.HasIdentity ? SelectIdentitySql : "SELECT 0");
211220

212221
return new CommandDefinition(query.ToString(), insertStatement.Parameters, flags: flags);
213222
}
@@ -473,7 +482,7 @@ public virtual async Task<IEnumerable<ITableDefinition>> GetTableDefinitions(
473482
}
474483

475484
var tables = new List<TableDefinition>();
476-
foreach (var table in await connection.QueryAsync(sqlQuery, new {SchemaName = schemaName}))
485+
foreach (var table in await connection.QueryAsync(sqlQuery, new {SchemaName = schemaName}).ConfigureAwait(false))
477486
{
478487
tables.Add(new TableDefinition
479488
{

src/SimpleStack.Orm/Expressions/Statements/InsertStatement.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ namespace SimpleStack.Orm.Expressions.Statements
55
public class InsertStatement : Statement
66
{
77
public List<string> InsertFields { get; } = new List<string>();
8+
public bool HasIdentity { get; set; }
89
}
910
}

src/SimpleStack.Orm/Expressions/Statements/Typed/TypedInsertStatement.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public TypedInsertStatement(IDialectProvider dialectProvider)
1414
{
1515
_dialectProvider = dialectProvider;
1616
Statement.TableName = _dialectProvider.GetQuotedTableName(_modelDefinition);
17+
Statement.HasIdentity = _modelDefinition.FieldDefinitions.Any(x => x.AutoIncrement);
1718
}
1819

1920
public InsertStatement Statement { get; } = new InsertStatement();

0 commit comments

Comments
 (0)