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

Commit 2cf291b

Browse files
authored
updates (#265)
1 parent 2ff7369 commit 2cf291b

File tree

15 files changed

+83
-62
lines changed

15 files changed

+83
-62
lines changed

Build/linq2db.Default.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
3030

3131
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
32+
33+
<CheckEolTargetFramework>false</CheckEolTargetFramework>
3234
</PropertyGroup>
3335

3436
<PropertyGroup>

Directory.Packages.props

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
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" />
@@ -22,6 +22,6 @@
2222
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.17" />
2323

2424
<PackageVersion Include="EntityFrameworkCore.FSharp" Version="5.0.3" />
25-
<PackageVersion Include="FSharp.Core" Version="6.0.5" />
25+
<PackageVersion Include="FSharp.Core" Version="7.0.0" />
2626
</ItemGroup>
2727
</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</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
@@ -31,7 +31,7 @@ namespace LinqToDB.EntityFrameworkCore
3131
/// <summary>
3232
/// LINQ To DB metadata reader for EF.Core model.
3333
/// </summary>
34-
internal class EFCoreMetadataReader : IMetadataReader
34+
internal sealed class EFCoreMetadataReader : IMetadataReader
3535
{
3636
readonly IModel? _model;
3737
private readonly RelationalSqlTranslatingExpressionVisitorDependencies? _dependencies;
@@ -242,7 +242,7 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
242242
{
243243
if (a.Value is string str)
244244
{
245-
return str.ToLower().Contains("nextval");
245+
return str.ToLowerInvariant().Contains("nextval");
246246
}
247247
}
248248

@@ -259,7 +259,8 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
259259
}
260260
else
261261
{
262-
dataType = SqlDataType.GetDataType(typeMapping.ClrType).Type.DataType;
262+
var ms = _model != null ? LinqToDBForEFTools.GetMappingSchema(_model, null) : MappingSchema.Default;
263+
dataType = ms.GetDataType(typeMapping.ClrType).Type.DataType;
263264
}
264265
}
265266

@@ -408,7 +409,7 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
408409
return Array.Empty<T>();
409410
}
410411

411-
class ValueConverter : IValueConverter
412+
sealed class ValueConverter : IValueConverter
412413
{
413414
public ValueConverter(
414415
LambdaExpression convertToProviderExpression,
@@ -425,7 +426,7 @@ public ValueConverter(
425426

426427
}
427428

428-
class SqlTransparentExpression : SqlExpression
429+
sealed class SqlTransparentExpression : SqlExpression
429430
{
430431
public Expression Expression { get; }
431432

@@ -439,7 +440,7 @@ protected override void Print(ExpressionPrinter expressionPrinter)
439440
expressionPrinter.Print(Expression);
440441
}
441442

442-
protected bool Equals(SqlTransparentExpression other)
443+
private bool Equals(SqlTransparentExpression other)
443444
{
444445
return ReferenceEquals(this, other);
445446
}

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: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ namespace LinqToDB.EntityFrameworkCore
4646
[PublicAPI]
4747
public class LinqToDBForEFToolsImplDefault : ILinqToDBForEFTools
4848
{
49-
class ProviderKey
49+
sealed class ProviderKey
5050
{
5151
public ProviderKey(string? providerName, string? connectionString)
5252
{
@@ -59,7 +59,7 @@ public ProviderKey(string? providerName, string? connectionString)
5959

6060
#region Equality members
6161

62-
protected bool Equals(ProviderKey other)
62+
private bool Equals(ProviderKey other)
6363
{
6464
return string.Equals(ProviderName, other.ProviderName) && string.Equals(ConnectionString, other.ConnectionString);
6565
}
@@ -163,31 +163,44 @@ protected virtual IDataProvider CreateLinqToDbDataProvider(EFProviderInfo provid
163163

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

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
@@ -147,7 +147,7 @@ private static void AddEntities(DbContext context)
147147
context.Set<OrderDetail>().AddRange(CreateOrderDetails());
148148
}
149149

150-
private class AsyncEnumerable<T> : IAsyncQueryProvider, IOrderedQueryable<T>
150+
private sealed class AsyncEnumerable<T> : IAsyncQueryProvider, IOrderedQueryable<T>
151151
{
152152
private readonly EnumerableQuery<T> _enumerableQuery;
153153

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

181-
private class ShadowStateAccessRewriter : ExpressionVisitor
181+
private sealed class ShadowStateAccessRewriter : ExpressionVisitor
182182
{
183183
[return: NotNullIfNotNull("expr")]
184184
static Expression? RemoveConvert(Expression? expr)

0 commit comments

Comments
 (0)