Skip to content
This repository was archived by the owner on Feb 1, 2025. It is now read-only.

Commit 6576004

Browse files
authored
v3 updates (#266)
* updates * revert dependency updates
1 parent b285c8d commit 6576004

File tree

14 files changed

+73
-55
lines changed

14 files changed

+73
-55
lines changed

Directory.Packages.props

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
<Project>
22
<ItemGroup>
3-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
4-
<PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" />
3+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
4+
<PackageVersion Include="NUnit3TestAdapter" Version="4.3.0" />
55
<PackageVersion Include="NUnit" Version="3.13.3" />
6-
<PackageVersion Include="FluentAssertions" Version="6.6.0" />
6+
<PackageVersion Include="FluentAssertions" Version="6.8.0" />
77

88
<PackageVersion Include="linq2db" Version="4.3.0" />
99
<PackageVersion Include="linq2db.Tools" Version="4.3.0" />
1010

1111
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
1212
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="6.0.0" />
1313

14-
1514
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.25" />
1615
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.25" />
1716

@@ -20,7 +19,7 @@
2019

2120
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="3.2.7" />
2221
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.18" />
23-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.25" />
24-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.25" />
22+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.31" />
23+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.31" />
2524
</ItemGroup>
2625
</Project>

NuGet/linq2db.EntityFrameworkCore.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<title>Linq to DB (linq2db) extensions for Entity Framework Core 3.1</title>
66
<authors>Igor Tkachev, Ilya Chudin, Svyatoslav Danyliv, Dmitry Lukashenko</authors>
77
<owners>Igor Tkachev, Ilya Chudin, Svyatoslav Danyliv, Dmitry Lukashenko</owners>
8-
<copyright>Copyright © 2020-2021 Igor Tkachev, Ilya Chudin, Svyatoslav Danyliv, Dmitry Lukashenko</copyright>
8+
<copyright>Copyright © 2020-2022 Igor Tkachev, Ilya Chudin, Svyatoslav Danyliv, Dmitry Lukashenko</copyright>
99
<description>Allows to execute Linq to DB (linq2db) queries in Entity Framework Core DbContext.</description>
1010
<summary />
1111
<tags>linq linq2db LinqToDB ORM database entity-framework-core EntityFrameworkCore EFCore DB SQL SqlServer SqlCe SqlServerCe MySql Firebird SQLite Oracle ODP PostgreSQL DB2</tags>

Source/LinqToDB.EntityFrameworkCore/EFCoreMetadataReader.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ namespace LinqToDB.EntityFrameworkCore
3030
/// <summary>
3131
/// LINQ To DB metadata reader for EF.Core model.
3232
/// </summary>
33-
internal class EFCoreMetadataReader : IMetadataReader
33+
internal sealed class EFCoreMetadataReader : IMetadataReader
3434
{
3535
readonly IModel? _model;
3636
private readonly RelationalSqlTranslatingExpressionVisitorDependencies? _dependencies;
@@ -235,7 +235,7 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
235235
{
236236
if (a.Value is string str)
237237
{
238-
return str.ToLower().Contains("nextval");
238+
return str.ToLowerInvariant().Contains("nextval");
239239
}
240240
}
241241

@@ -252,7 +252,8 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
252252
}
253253
else
254254
{
255-
dataType = SqlDataType.GetDataType(typeMapping.ClrType).Type.DataType;
255+
var ms = _model != null ? LinqToDBForEFTools.GetMappingSchema(_model, null) : MappingSchema.Default;
256+
dataType = ms.GetDataType(typeMapping.ClrType).Type.DataType;
256257
}
257258
}
258259

@@ -404,7 +405,7 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
404405
return Array.Empty<T>();
405406
}
406407

407-
class ValueConverter : IValueConverter
408+
sealed class ValueConverter : IValueConverter
408409
{
409410
public ValueConverter(
410411
LambdaExpression convertToProviderExpression,
@@ -421,7 +422,7 @@ public ValueConverter(
421422

422423
}
423424

424-
class SqlTransparentExpression : SqlExpression
425+
sealed class SqlTransparentExpression : SqlExpression
425426
{
426427
public Expression Expression { get; }
427428

@@ -435,7 +436,7 @@ public override void Print(ExpressionPrinter expressionPrinter)
435436
expressionPrinter.Print(Expression);
436437
}
437438

438-
protected bool Equals(SqlTransparentExpression other)
439+
private bool Equals(SqlTransparentExpression other)
439440
{
440441
return ReferenceEquals(this, other);
441442
}

Source/LinqToDB.EntityFrameworkCore/LinqToDBForEFToolsDataConnection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public Expression ProcessExpression(Expression expression)
131131
return _transformFunc(expression, this, Context, _model);
132132
}
133133

134-
private class TypeKey
134+
private sealed class TypeKey
135135
{
136136
public TypeKey(IEntityType entityType, IModel? model)
137137
{
@@ -142,7 +142,7 @@ public TypeKey(IEntityType entityType, IModel? model)
142142
public IEntityType EntityType { get; }
143143
public IModel? Model { get; }
144144

145-
protected bool Equals(TypeKey other)
145+
private bool Equals(TypeKey other)
146146
{
147147
return EntityType.Equals(other.EntityType) && Equals(Model, other.Model);
148148
}

Source/LinqToDB.EntityFrameworkCore/LinqToDBForEFToolsImplDefault.cs

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ namespace LinqToDB.EntityFrameworkCore
4444
[PublicAPI]
4545
public class LinqToDBForEFToolsImplDefault : ILinqToDBForEFTools
4646
{
47-
class ProviderKey
47+
sealed class ProviderKey
4848
{
4949
public ProviderKey(string? providerName, string? connectionString)
5050
{
@@ -57,7 +57,7 @@ public ProviderKey(string? providerName, string? connectionString)
5757

5858
#region Equality members
5959

60-
protected bool Equals(ProviderKey other)
60+
private bool Equals(ProviderKey other)
6161
{
6262
return string.Equals(ProviderName, other.ProviderName) && string.Equals(ConnectionString, other.ConnectionString);
6363
}
@@ -161,31 +161,44 @@ protected virtual IDataProvider CreateLinqToDbDataProvider(EFProviderInfo provid
161161

162162
switch (provInfo.ProviderName)
163163
{
164-
case ProviderName.SqlServer:
165-
return CreateSqlServerProvider(SqlServerDefaultVersion, connectionInfo.ConnectionString);
166-
case ProviderName.MySql:
167-
case ProviderName.MySqlConnector:
168-
return MySqlTools.GetDataProvider(provInfo.ProviderName);
169-
case ProviderName.PostgreSQL:
170-
return CreatePostgreSqlProvider(PostgreSqlDefaultVersion, connectionInfo.ConnectionString);
171-
case ProviderName.SQLite:
172-
return SQLiteTools.GetDataProvider(provInfo.ProviderName);
173-
case ProviderName.Firebird:
174-
return FirebirdTools.GetDataProvider();
175-
case ProviderName.DB2:
176-
case ProviderName.DB2LUW:
177-
return DB2Tools.GetDataProvider(DB2Version.LUW);
178-
case ProviderName.DB2zOS:
179-
return DB2Tools.GetDataProvider(DB2Version.zOS);
180-
case ProviderName.Oracle:
181-
return OracleTools.GetDataProvider(provInfo.ProviderName, version: OracleVersion.v11);
182-
case ProviderName.SqlCe:
183-
return SqlCeTools.GetDataProvider();
184-
//case ProviderName.Access:
185-
// return new AccessDataProvider();
186-
187-
default:
188-
throw new LinqToDBForEFToolsException($"Can not instantiate data provider '{provInfo.ProviderName}'.");
164+
case ProviderName.SqlServer:
165+
return CreateSqlServerProvider(SqlServerDefaultVersion, connectionInfo.ConnectionString);
166+
case ProviderName.MySql:
167+
case ProviderName.MySqlConnector:
168+
return MySqlTools.GetDataProvider(provInfo.ProviderName);
169+
case ProviderName.PostgreSQL:
170+
return CreatePostgreSqlProvider(PostgreSqlDefaultVersion, connectionInfo.ConnectionString);
171+
case ProviderName.SQLite:
172+
return SQLiteTools.GetDataProvider(provInfo.ProviderName);
173+
case ProviderName.Firebird:
174+
return FirebirdTools.GetDataProvider();
175+
case ProviderName.DB2:
176+
case ProviderName.DB2LUW:
177+
return DB2Tools.GetDataProvider(DB2Version.LUW);
178+
case ProviderName.DB2zOS:
179+
return DB2Tools.GetDataProvider(DB2Version.zOS);
180+
181+
case ProviderName.Oracle11Native:
182+
return OracleTools.GetDataProvider(OracleVersion.v11, OracleProvider.Native);
183+
case ProviderName.OracleNative:
184+
return OracleTools.GetDataProvider(OracleVersion.v12, OracleProvider.Native);
185+
case ProviderName.Oracle11Managed:
186+
return OracleTools.GetDataProvider(OracleVersion.v11, OracleProvider.Managed);
187+
case ProviderName.Oracle:
188+
case ProviderName.OracleManaged:
189+
return OracleTools.GetDataProvider(OracleVersion.v12, OracleProvider.Managed);
190+
case ProviderName.Oracle11Devart:
191+
return OracleTools.GetDataProvider(OracleVersion.v11, OracleProvider.Devart);
192+
case ProviderName.OracleDevart:
193+
return OracleTools.GetDataProvider(OracleVersion.v12, OracleProvider.Devart);
194+
195+
case ProviderName.SqlCe:
196+
return SqlCeTools.GetDataProvider();
197+
//case ProviderName.Access:
198+
// return new AccessDataProvider();
199+
200+
default:
201+
throw new LinqToDBForEFToolsException($"Can not instantiate data provider '{provInfo.ProviderName}'.");
189202
}
190203
}
191204

Tests/LinqToDB.EntityFrameworkCore.BaseTests/Logging/NullExternalScopeProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace LinqToDB.EntityFrameworkCore.BaseTests.Logging
66
/// <summary>
77
/// Scope provider that does nothing.
88
/// </summary>
9-
internal class NullExternalScopeProvider : IExternalScopeProvider
9+
internal sealed class NullExternalScopeProvider : IExternalScopeProvider
1010
{
1111
private NullExternalScopeProvider()
1212
{

Tests/LinqToDB.EntityFrameworkCore.BaseTests/Logging/NullScope.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace LinqToDB.EntityFrameworkCore.BaseTests.Logging
44
{
5-
internal class NullScope : IDisposable
5+
internal sealed class NullScope : IDisposable
66
{
77
public static NullScope Instance { get; } = new NullScope();
88

Tests/LinqToDB.EntityFrameworkCore.BaseTests/Logging/TestLogger.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace LinqToDB.EntityFrameworkCore.BaseTests.Logging
88
{
9-
internal class TestLogger : ILogger
9+
internal sealed class TestLogger : ILogger
1010
{
1111
private static readonly string _loglevelPadding = ": ";
1212
private static readonly string _messagePadding;
@@ -58,7 +58,7 @@ public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Except
5858
}
5959
}
6060

61-
public virtual void WriteMessage(LogLevel logLevel, string logName, int eventId, string message, Exception exception)
61+
public void WriteMessage(LogLevel logLevel, string logName, int eventId, string message, Exception exception)
6262
{
6363
var format = Options!.FormatterName;
6464
Debug.Assert(format is ConsoleFormatterNames.Simple or ConsoleFormatterNames.Systemd);
@@ -99,7 +99,7 @@ private void EnqueueMessage(LogMessageEntry entry)
9999
WriteMessage(entry);
100100
}
101101

102-
internal virtual void WriteMessage(LogMessageEntry message)
102+
internal void WriteMessage(LogMessageEntry message)
103103
{
104104
if (message.TimeStamp != null)
105105
{

Tests/LinqToDB.EntityFrameworkCore.BaseTests/Models/Northwind/NorthwindData.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private static void AddEntities(DbContext context)
145145
context.Set<OrderDetail>().AddRange(CreateOrderDetails());
146146
}
147147

148-
private class AsyncEnumerable<T> : IAsyncQueryProvider, IOrderedQueryable<T>
148+
private sealed class AsyncEnumerable<T> : IAsyncQueryProvider, IOrderedQueryable<T>
149149
{
150150
private readonly EnumerableQuery<T> _enumerableQuery;
151151

@@ -176,7 +176,7 @@ public TResult Execute<TResult>(Expression expression)
176176
private static Expression RewriteShadowPropertyAccess(Expression expression)
177177
=> new ShadowStateAccessRewriter().Visit(expression);
178178

179-
private class ShadowStateAccessRewriter : ExpressionVisitor
179+
private sealed class ShadowStateAccessRewriter : ExpressionVisitor
180180
{
181181
protected override Expression VisitMethodCall(MethodCallExpression node)
182182
=> node.Method.IsEFPropertyMethod()

Tests/LinqToDB.EntityFrameworkCore.PostgreSQL.Tests/SampleTests/StringExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public static string ToSnakeCase(this string input)
1010
return input;
1111

1212
var startUnderscores = Regex.Match(input, @"^_+");
13-
return startUnderscores + Regex.Replace(input, @"([a-z0-9])([A-Z])", "$1_$2").ToLower();
13+
return startUnderscores + Regex.Replace(input, @"([a-z0-9])([A-Z])", "$1_$2").ToLowerInvariant();
1414
}
1515
}
1616
}

0 commit comments

Comments
 (0)