Skip to content

Commit 960c567

Browse files
authored
Merge pull request #467 from DataObjects-NET/7.2-non-csharp-project-update
Non-csharp projects update
2 parents ad5585e + d5f939b commit 960c567

36 files changed

Lines changed: 3301 additions & 1010 deletions

ChangeLog/7.2.2-dev.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
[main] QueryEndpoint.SingleAsync()/SingleOrDefaultAsync() get overloads that can recieve one key value as parameter without need to create array explicitly
33
[main] PrefetchQuery<T> implements IAsyncEnumerable<T>, extra call for .AsAsyncEmumerable() is not needed for async enumeration
44
[main] PrefetchQuery<T>.AsAsyncEmumerable() is marked as Obsolete
5-
[main] Support for C#14+ optimization that applies ReadOnlySpan<T>.Contains() extension instead of IEnumerable<T>.Contains() one to arrays
5+
[main] Support for C#14+ optimization that applies ReadOnlySpan<T>.Contains() extension instead of IEnumerable<T>.Contains() one to arrays
6+
[main] Compatibility with VB and FSharp improved

Directory.Build.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@
7171
<TargetFrameworks Condition="'$(TargetFrameworks)'==''">net8.0;net7.0;net6.0</TargetFrameworks> <!-- fallback to default -->
7272
</PropertyGroup>
7373

74-
<PropertyGroup Condition = "$(Configuration.Contains('Debug')) == 'true'">
75-
<DefineConstants>$(DefineConstants);TRACE;DEBUG</DefineConstants>
76-
<DebugSymbols>true</DebugSymbols>
77-
<DebugType>portable</DebugType>
74+
<PropertyGroup Condition = "$(Configuration.Contains('Debug')) == 'true' AND $(MSBuildProjectName.Contains('Tests.VB')) == 'false'">
75+
<DefineConstants>$(DefineConstants);TRACE;DEBUG</DefineConstants>
76+
<DebugSymbols>true</DebugSymbols>
77+
<DebugType>portable</DebugType>
7878
</PropertyGroup>
7979

80-
<PropertyGroup Condition = "$(Configuration.Contains('Release')) == 'true'">
81-
<DefineConstants>$(DefineConstants);TRACE</DefineConstants>
80+
<PropertyGroup Condition = "$(Configuration.Contains('Release')) == 'true' AND $(MSBuildProjectName.Contains('Tests.VB')) == 'false'">
81+
<DefineConstants>$(DefineConstants);TRACE</DefineConstants>
8282
</PropertyGroup>
8383

8484
<PropertyGroup>

Orm.sln

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NuGetPublish", "Publish\NuG
8686
EndProject
8787
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Xtensive.Orm.Tests.FSharp", "Orm\Xtensive.Orm.Tests.FSharp\Xtensive.Orm.Tests.FSharp.fsproj", "{A68C90C1-AD82-40FD-A18D-F04923514743}"
8888
EndProject
89+
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Xtensive.Orm.Tests.VB", "Orm\Xtensive.Orm.Tests.VB\Xtensive.Orm.Tests.VB.vbproj", "{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}"
90+
EndProject
8991
Global
9092
GlobalSection(SolutionConfigurationPlatforms) = preSolution
9193
Debug|Any CPU = Debug|Any CPU
92-
Release|Any CPU = Release|Any CPU
9394
Debug-NET6|Any CPU = Debug-NET6|Any CPU
9495
Debug-NET7|Any CPU = Debug-NET7|Any CPU
9596
Debug-NET8|Any CPU = Debug-NET8|Any CPU
97+
Release|Any CPU = Release|Any CPU
9698
Release-NET6|Any CPU = Release-NET6|Any CPU
9799
Release-NET7|Any CPU = Release-NET7|Any CPU
98100
Release-NET8|Any CPU = Release-NET8|Any CPU
@@ -602,6 +604,22 @@ Global
602604
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET7|Any CPU.Build.0 = Release-NET7|Any CPU
603605
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
604606
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
607+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
608+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug|Any CPU.Build.0 = Debug|Any CPU
609+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET6|Any CPU.ActiveCfg = Debug-NET6|Any CPU
610+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET6|Any CPU.Build.0 = Debug-NET6|Any CPU
611+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET7|Any CPU.ActiveCfg = Debug-NET7|Any CPU
612+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET7|Any CPU.Build.0 = Debug-NET7|Any CPU
613+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
614+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
615+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release|Any CPU.ActiveCfg = Release|Any CPU
616+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release|Any CPU.Build.0 = Release|Any CPU
617+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET6|Any CPU.ActiveCfg = Release-NET6|Any CPU
618+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET6|Any CPU.Build.0 = Release-NET6|Any CPU
619+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET7|Any CPU.ActiveCfg = Release-NET7|Any CPU
620+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET7|Any CPU.Build.0 = Release-NET7|Any CPU
621+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
622+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
605623
EndGlobalSection
606624
GlobalSection(SolutionProperties) = preSolution
607625
HideSolutionNode = FALSE
@@ -638,6 +656,7 @@ Global
638656
{45000ADE-F647-4171-A91A-428CDF682603} = {2302847B-292A-4650-A852-BDED40E1BB1C}
639657
{2CC55F3E-8EA5-4305-8716-D5B944120F82} = {5726BBD8-14F9-4909-B765-3E7709223B61}
640658
{A68C90C1-AD82-40FD-A18D-F04923514743} = {8AAB1719-253A-47D2-970F-1911CFEE84B7}
659+
{C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225} = {8AAB1719-253A-47D2-970F-1911CFEE84B7}
641660
EndGlobalSection
642661
GlobalSection(ExtensibilityGlobals) = postSolution
643662
SolutionGuid = {F995719A-8D35-49A3-B271-42898A587F57}
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
module ArithmeticOperationsCompilersTest
2+
3+
open FsUnit
4+
open NUnit.Framework
5+
open Xtensive.Orm
6+
open Xtensive.Orm.Tests
7+
open Model
8+
open Microsoft.FSharp.Linq
9+
10+
[<TestFixture>]
11+
type Fixture() =
12+
inherit AutoBuildTest()
13+
14+
override this.BuildConfiguration() =
15+
let config = base.BuildConfiguration ()
16+
config.Types.Register typeof<X>
17+
config
18+
19+
[<Test>]
20+
member this.AdditionStringTest() =
21+
use session = base.Domain.OpenSession ()
22+
use ts = session.OpenTransaction ()
23+
X (StringField = "John") |> ignore
24+
let alll = session.Query.All<X> ()
25+
let query =
26+
query {
27+
for x in alll do
28+
if (x.StringField + x.StringField) = "JohnJohn" then
29+
yield x
30+
}
31+
let list = query |> Seq.toArray
32+
Assert.That(list.Length, Is.EqualTo(1))
33+
let fetched = list.[0]
34+
Assert.That(fetched.StringField, Is.EqualTo("John"))
35+
36+
[<Test>]
37+
member this.AdditionDateTimeTest() =
38+
use session = base.Domain.OpenSession ()
39+
use ts = session.OpenTransaction ()
40+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
41+
let alll = session.Query.All<X> ()
42+
let query =
43+
query {
44+
for x in alll do
45+
if (x.DateTimeField + System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 15) then
46+
yield x
47+
}
48+
let list = query |> Seq.toArray
49+
Assert.That(list.Length, Is.EqualTo(1))
50+
let fetched = list.[0]
51+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
52+
53+
[<Test>]
54+
member this.AdditionTimeSpanTest() =
55+
Require.ProviderIsNot (StorageProvider.PostgreSql)
56+
use session = base.Domain.OpenSession ()
57+
use ts = session.OpenTransaction ()
58+
X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
59+
let alll = session.Query.All<X> ()
60+
let query =
61+
query {
62+
for x in alll do
63+
if (x.TimeSpanField + System.TimeSpan.FromDays(2)) > System.TimeSpan.FromTicks(111222333) + System.TimeSpan.FromDays(1) then
64+
yield x
65+
}
66+
let list = query |> Seq.toArray
67+
Assert.That(list.Length, Is.EqualTo(1))
68+
let fetched = list.[0]
69+
Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
70+
71+
[<Test>]
72+
member this.AdditionDecimalTest() =
73+
use session = base.Domain.OpenSession ()
74+
use ts = session.OpenTransaction ()
75+
X (DecimalField = decimal 16.0) |> ignore
76+
let alll = session.Query.All<X> ()
77+
let query =
78+
query {
79+
for x in alll do
80+
if x.DecimalField + x.DecimalField <= decimal 35 then
81+
yield x
82+
}
83+
let list = query |> Seq.toArray
84+
Assert.That(list.Length, Is.EqualTo(1))
85+
let fetched = list.[0]
86+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
87+
88+
[<Test>]
89+
member this.SubtractionDateTimeTest1() =
90+
use session = base.Domain.OpenSession ()
91+
use ts = session.OpenTransaction ()
92+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
93+
let alll = session.Query.All<X> ()
94+
let query =
95+
query {
96+
for x in alll do
97+
if (x.DateTimeField - System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 10) then
98+
yield x
99+
}
100+
let list = query |> Seq.toArray
101+
Assert.That(list.Length, Is.EqualTo(1))
102+
let fetched = list.[0]
103+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
104+
105+
[<Test>]
106+
member this.SubtractionDateTimeTest2() =
107+
use session = base.Domain.OpenSession ()
108+
use ts = session.OpenTransaction ()
109+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
110+
let alll = session.Query.All<X> ()
111+
let query =
112+
query {
113+
for x in alll do
114+
if (x.DateTimeField - new System.DateTime(System.DateTime.Now.Year, 2, 10)) > System.TimeSpan.FromDays(2) then
115+
yield x
116+
}
117+
let list = query |> Seq.toArray
118+
Assert.That(list.Length, Is.EqualTo(1))
119+
let fetched = list.[0]
120+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
121+
122+
[<Test>]
123+
member this.SubtractionTimeSpanTest() =
124+
Require.ProviderIsNot (StorageProvider.PostgreSql)
125+
use session = base.Domain.OpenSession ()
126+
use ts = session.OpenTransaction ()
127+
X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
128+
let alll = session.Query.All<X> ()
129+
let query =
130+
query {
131+
for x in alll do
132+
if (x.TimeSpanField - System.TimeSpan.FromTicks(111222)) > System.TimeSpan.FromTicks(111222) then
133+
yield x
134+
}
135+
let list = query |> Seq.toArray
136+
Assert.That(list.Length, Is.EqualTo(1))
137+
let fetched = list.[0]
138+
Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
139+
140+
[<Test>]
141+
member this.SubtractionDecimalTest() =
142+
use session = base.Domain.OpenSession ()
143+
use ts = session.OpenTransaction ()
144+
X (DecimalField = decimal 16.0) |> ignore
145+
let alll = session.Query.All<X> ()
146+
let query =
147+
query {
148+
for x in alll do
149+
if x.DecimalField - x.DecimalField + decimal 3 <= decimal 5 then
150+
yield x
151+
}
152+
let list = query |> Seq.toArray
153+
Assert.That(list.Length, Is.EqualTo(1))
154+
let fetched = list.[0]
155+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
156+
157+
[<Test>]
158+
member this.MultiplyDecimalTest() =
159+
Require.ProviderIsNot StorageProvider.Firebird
160+
use session = base.Domain.OpenSession ()
161+
use ts = session.OpenTransaction ()
162+
X (DecimalField = decimal 16.0) |> ignore
163+
let alll = session.Query.All<X> ()
164+
let query =
165+
query {
166+
for x in alll do
167+
if x.DecimalField * x.DecimalField <= decimal 350 then
168+
yield x
169+
}
170+
let list = query |> Seq.toArray
171+
Assert.That(list.Length, Is.EqualTo(1))
172+
let fetched = list.[0]
173+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
174+
175+
[<Test>]
176+
member this.DivideDecimalTest() =
177+
use session = base.Domain.OpenSession ()
178+
use ts = session.OpenTransaction ()
179+
X (DecimalField = decimal 16.0) |> ignore
180+
let alll = session.Query.All<X> ()
181+
let query =
182+
query {
183+
for x in alll do
184+
if x.DecimalField / decimal 2 <= decimal 16 then
185+
yield x
186+
}
187+
let list = query |> Seq.toArray
188+
Assert.That(list.Length, Is.EqualTo(1))
189+
let fetched = list.[0]
190+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))

0 commit comments

Comments
 (0)