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

Commit c094fba

Browse files
committed
backport from v3
1 parent 37fc750 commit c094fba

File tree

12 files changed

+51
-25
lines changed

12 files changed

+51
-25
lines changed

Directory.Packages.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<Project>
22
<ItemGroup>
3-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
4-
<PackageVersion Include="NUnit3TestAdapter" Version="4.3.1" />
3+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
4+
<PackageVersion Include="NUnit3TestAdapter" Version="4.4.2" />
55
<PackageVersion Include="NUnit" Version="3.13.3" />
6-
<PackageVersion Include="FluentAssertions" Version="6.10.0" />
6+
<PackageVersion Include="FluentAssertions" Version="6.11.0" />
77

8-
<PackageVersion Include="linq2db" Version="5.0.0" />
9-
<PackageVersion Include="linq2db.Tools" Version="5.0.0" />
8+
<PackageVersion Include="linq2db" Version="5.2.1" />
9+
<PackageVersion Include="linq2db.Tools" Version="5.2.1" />
1010

1111
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
1212
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="7.0.0" />
@@ -19,7 +19,7 @@
1919
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="5.0.0" />
2020

2121
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.6" />
22-
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.4" />
22+
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" Version="2.2.4" />
2323
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.6" />
2424
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" />
2525
</ItemGroup>

Source/LinqToDB.EntityFrameworkCore/LinqToDBForEFToolsImplDefault.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,7 @@ TransformInfo LocalTransform(Expression e)
920920
methodCall.Arguments[1]), false, true);
921921
}
922922

923-
if (typeof(IQueryable<>).IsSameOrParentOf(methodCall.Type))
923+
if (typeof(IQueryable<>).IsSameOrParentOf(methodCall.Type) && methodCall.Type.Assembly != typeof(LinqExtensions).Assembly)
924924
{
925925
if (null == methodCall.Find(nonEvaluatableParameters,
926926
(c, t) => t.NodeType == ExpressionType.Parameter && c.Contains(t)))

Tests/LinqToDB.EntityFrameworkCore.PostgreSQL.Tests/LinqToDB.EntityFrameworkCore.PostgreSQL.Tests.csproj

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
<ItemGroup>
66
<PackageReference Include="FluentAssertions" />
7-
</ItemGroup>
8-
9-
<ItemGroup>
10-
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
7+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" />
118
</ItemGroup>
129

1310
<ItemGroup>

Tests/LinqToDB.EntityFrameworkCore.PostgreSQL.Tests/Models/NpgSqlEntities/NpgSqlEnititesContext.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,19 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
3232
entity.ForNpgsqlUseXminAsConcurrencyToken();
3333
});
3434

35+
modelBuilder.Entity<TimeStampEntity>(e =>
36+
{
37+
e.Property(e => e.Timestamp1).HasColumnType("timestamp");
38+
e.Property(e => e.Timestamp2).HasColumnType("timestamp");
39+
e.Property(e => e.TimestampTZ1).HasColumnType("timestamp with time zone");
40+
e.Property(e => e.TimestampTZ2).HasColumnType("timestamp with time zone");
41+
e.Property(e => e.TimestampTZ3).HasColumnType("timestamp with time zone");
42+
});
3543
}
3644

3745
public virtual DbSet<Event> Events { get; set; } = null!;
3846
public virtual DbSet<EntityWithArrays> EntityWithArrays { get; set; } = null!;
3947
public virtual DbSet<EntityWithXmin> EntityWithXmin { get; set; } = null!;
40-
48+
public virtual DbSet<TimeStampEntity> TimeStamps { get; set; } = null!;
4149
}
4250
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
using NodaTime;
3+
4+
namespace LinqToDB.EntityFrameworkCore.PostgreSQL.Tests.Models.NpgSqlEntities
5+
{
6+
public class TimeStampEntity
7+
{
8+
public int Id { get; set; }
9+
public DateTime Timestamp1 { get; set; }
10+
public LocalDateTime Timestamp2 { get; set; }
11+
public DateTime TimestampTZ1 { get; set; }
12+
public DateTimeOffset TimestampTZ2 { get; set; }
13+
public Instant TimestampTZ3 { get; set; }
14+
}
15+
}

Tests/LinqToDB.EntityFrameworkCore.PostgreSQL.Tests/NpgSqlTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using LinqToDB.EntityFrameworkCore.BaseTests;
77
using LinqToDB.EntityFrameworkCore.PostgreSQL.Tests.Models.NpgSqlEntities;
88
using Microsoft.EntityFrameworkCore;
9+
using NodaTime;
910
using NUnit.Framework;
1011

1112
namespace LinqToDB.EntityFrameworkCore.PostgreSQL.Tests
@@ -23,10 +24,9 @@ static NpgSqlTests()
2324
public NpgSqlTests()
2425
{
2526
var optionsBuilder = new DbContextOptionsBuilder<NpgSqlEnititesContext>();
26-
//new SqlServerDbContextOptionsBuilder(optionsBuilder);
2727

28-
//optionsBuilder.UseNpgsql("Server=DBHost;Port=5432;Database=TestData;User Id=postgres;Password=TestPassword;Pooling=true;MinPoolSize=10;MaxPoolSize=100;");
29-
optionsBuilder.UseNpgsql("Server=localhost;Port=5415;Database=TestData;User Id=postgres;Password=Password12!;Pooling=true;MinPoolSize=10;MaxPoolSize=100;");
28+
//optionsBuilder.UseNpgsql("Server=DBHost;Port=5432;Database=TestData;User Id=postgres;Password=TestPassword;Pooling=true;MinPoolSize=10;MaxPoolSize=100;", o => o.UseNodaTime());
29+
optionsBuilder.UseNpgsql("Server=localhost;Port=5415;Database=TestData;User Id=postgres;Password=Password12!;Pooling=true;MinPoolSize=10;MaxPoolSize=100;", o => o.UseNodaTime());
3030
optionsBuilder.UseLoggerFactory(TestUtils.LoggerFactory);
3131

3232
_options = optionsBuilder.Options;
@@ -102,7 +102,6 @@ public void TestConcurrencyToken()
102102
db.BulkCopy(toInsert);
103103
}
104104

105-
106105
[Test]
107106
public void TestUnnest()
108107
{
@@ -120,6 +119,5 @@ where Sql.Ext.PostgreSQL().Overlaps(m.Guids, guids)
120119

121120
query.Invoking(q => q.ToArray()).Should().NotThrow();
122121
}
123-
124122
}
125123
}

Tests/LinqToDB.EntityFrameworkCore.SqlServer.Tests/IssueTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Linq;
22
using FluentAssertions;
3+
using LinqToDB.DataProvider.SqlServer;
34
using LinqToDB.EntityFrameworkCore.BaseTests;
45
using LinqToDB.EntityFrameworkCore.SqlServer.Tests.Models.IssueModel;
56
using Microsoft.EntityFrameworkCore;
@@ -79,5 +80,12 @@ from p in ctx.Patents.Include(p => p.Assessment)
7980
Assert.That(db.LastQuery, Does.Not.Contain("INNER"));
8081
}
8182

83+
[Test]
84+
public void Issue321Test()
85+
{
86+
using var ctx = CreateContext();
87+
88+
var _ = ctx.Patents.AsSqlServer().ToLinqToDB().ToArray();
89+
}
8290
}
8391
}

Tests/LinqToDB.EntityFrameworkCore.SqlServer.Tests/Models/Northwind.Mapping/CategoriesMap.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public override void Configure(EntityTypeBuilder<Category> builder)
2222
.IsRequired()
2323
.HasMaxLength(15);
2424

25-
builder.Property(e => e.Description).HasColumnType("ntext");
25+
builder.Property(e => e.Description).HasColumnType("nvarchar(max)");
2626

27-
builder.Property(e => e.Picture).HasColumnType("image");
27+
builder.Property(e => e.Picture).HasColumnType("varbinary(max)");
2828
}
2929
}
3030
}

Tests/LinqToDB.EntityFrameworkCore.SqlServer.Tests/Models/Northwind.Mapping/CustomerDemographicsMap.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public override void Configure(EntityTypeBuilder<CustomerDemographics> builder)
1818
.HasMaxLength(10)
1919
.ValueGeneratedNever();
2020

21-
builder.Property(e => e.CustomerDesc).HasColumnType("ntext");
21+
builder.Property(e => e.CustomerDesc).HasColumnType("nvarchar(max)");
2222
}
2323
}
2424
}

Tests/LinqToDB.EntityFrameworkCore.SqlServer.Tests/Models/Northwind.Mapping/EmployeesMap.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ public override void Configure(EntityTypeBuilder<Employee> builder)
4343
.IsRequired()
4444
.HasMaxLength(20);
4545

46-
builder.Property(e => e.Notes).HasColumnType("ntext");
46+
builder.Property(e => e.Notes).HasColumnType("nvarchar(max)");
4747

48-
builder.Property(e => e.Photo).HasColumnType("image");
48+
builder.Property(e => e.Photo).HasColumnType("varbinary(max)");
4949

5050
builder.Property(e => e.PhotoPath).HasMaxLength(255);
5151

0 commit comments

Comments
 (0)