diff --git a/Directory.Build.props b/Directory.Build.props
index eb73c5102..128282c6e 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -66,13 +66,13 @@
12.0
-
+
$(DefineConstants);TRACE;DEBUG
true
portable
-
+
$(DefineConstants);TRACE
diff --git a/Orm.sln b/Orm.sln
index c3c4f535c..e96d010b9 100644
--- a/Orm.sln
+++ b/Orm.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32616.157
+# Visual Studio Version 18
+VisualStudioVersion = 18.4.11620.152 stable
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xtensive.Orm", "Orm\Xtensive.Orm\Xtensive.Orm.csproj", "{064D5B81-8D54-4F2F-9649-952F71E27E14}"
EndProject
@@ -86,394 +86,408 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NuGetPublish", "Publish\NuG
EndProject
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}"
EndProject
+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}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- Debug-NET8|Any CPU = Debug-NET8|Any CPU
Debug-NET10|Any CPU = Debug-NET10|Any CPU
- Release-NET8|Any CPU = Release-NET8|Any CPU
+ Debug-NET8|Any CPU = Debug-NET8|Any CPU
+ Release|Any CPU = Release|Any CPU
Release-NET10|Any CPU = Release-NET10|Any CPU
+ Release-NET8|Any CPU = Release-NET8|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {064D5B81-8D54-4F2F-9649-952F71E27E14}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Release|Any CPU.ActiveCfg = Release|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Release|Any CPU.Build.0 = Release|Any CPU
- {064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {064D5B81-8D54-4F2F-9649-952F71E27E14}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release|Any CPU.Build.0 = Release|Any CPU
- {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {4E5C9208-426B-4536-AF7C-994C07E83FFA}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {4A985241-6698-47AA-A9DD-F3847600D542}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Release|Any CPU.Build.0 = Release|Any CPU
- {4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {4A985241-6698-47AA-A9DD-F3847600D542}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {411F1ECB-053D-470A-9B75-49D715B440D6}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Release|Any CPU.Build.0 = Release|Any CPU
- {411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {411F1ECB-053D-470A-9B75-49D715B440D6}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release|Any CPU.Build.0 = Release|Any CPU
- {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {36F889C0-F5D9-43DF-9E6E-D18C97673973}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release|Any CPU.Build.0 = Release|Any CPU
- {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {E6268FB3-D38A-4849-A43D-CB0FF7B67E60}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release|Any CPU.Build.0 = Release|Any CPU
- {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {C9B5BFED-85BC-47AE-8872-0BA97AF7B8B9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {CB5E5E27-C723-494D-B288-036267823D28}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Release|Any CPU.Build.0 = Release|Any CPU
- {CB5E5E27-C723-494D-B288-036267823D28}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {CB5E5E27-C723-494D-B288-036267823D28}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{CB5E5E27-C723-494D-B288-036267823D28}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {CB5E5E27-C723-494D-B288-036267823D28}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {CB5E5E27-C723-494D-B288-036267823D28}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release|Any CPU.Build.0 = Release|Any CPU
- {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {38F31CBB-034B-4231-91BE-D7D24C8A20F9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release|Any CPU.Build.0 = Release|Any CPU
- {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {53CB563A-BE93-4061-BDB3-AC3B69093A90}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release|Any CPU.Build.0 = Release|Any CPU
- {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {6CA1FDE2-ECBA-4580-97C3-A00B707558DB}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release|Any CPU.Build.0 = Release|Any CPU
- {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {DC44D096-DF24-41EC-9841-07F33E0A8EA3}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release|Any CPU.Build.0 = Release|Any CPU
- {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {1E0545D6-D979-48E0-A311-064BEDCE5A62}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {BA58CD9C-139B-41AB-915D-962765DFADBA}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Release|Any CPU.Build.0 = Release|Any CPU
- {BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {BA58CD9C-139B-41AB-915D-962765DFADBA}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {6E052601-9E0C-473D-A617-AD74DED24DC0}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Release|Any CPU.Build.0 = Release|Any CPU
- {6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {6E052601-9E0C-473D-A617-AD74DED24DC0}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {CE6BC11C-E785-4F10-A945-2416FD001689}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {CE6BC11C-E785-4F10-A945-2416FD001689}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {48827567-3991-4767-BED5-C76CAD47628E}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Release|Any CPU.Build.0 = Release|Any CPU
- {48827567-3991-4767-BED5-C76CAD47628E}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {48827567-3991-4767-BED5-C76CAD47628E}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{48827567-3991-4767-BED5-C76CAD47628E}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {48827567-3991-4767-BED5-C76CAD47628E}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {48827567-3991-4767-BED5-C76CAD47628E}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release|Any CPU.Build.0 = Release|Any CPU
- {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {9CB81088-CF8A-400C-B80A-2D9782ED5B10}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release|Any CPU.Build.0 = Release|Any CPU
- {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {5E809296-02AA-4657-9FC1-CE0E0828B2B5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release|Any CPU.Build.0 = Release|Any CPU
- {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {0AB4E2E3-9F74-4CB9-A25D-5C8FD38D9291}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
+ {23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
- {23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
- {23550452-235D-4413-952B-BB8A45CAF8B1}.Debug-NET10|Any CPU.Build.0 = Debug-NET0|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Release|Any CPU.Build.0 = Release|Any CPU
- {23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {23550452-235D-4413-952B-BB8A45CAF8B1}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release|Any CPU.ActiveCfg = Release|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release|Any CPU.Build.0 = Release|Any CPU
- {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {643D0EC3-D15E-4061-A3B7-EBB54EEB3069}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {2481997F-AC95-43B2-8A4E-0210E50387D5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Release|Any CPU.Build.0 = Release|Any CPU
- {2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {2481997F-AC95-43B2-8A4E-0210E50387D5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release|Any CPU.Build.0 = Release|Any CPU
- {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {04580B17-B4FC-41A8-8ABC-336822F4ADB9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {6CBBB146-851F-49A6-88EC-01FFE455815B}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET10|Any CPU.ActiveCfg = Release-NET0|Any CPU
+ {6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET10|Any CPU.Build.0 = Release-NET0|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
{6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
- {6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET10|Any CPU.ActiveCfg = Release-NET0|Any CPU
- {6CBBB146-851F-49A6-88EC-01FFE455815B}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {3AC7C076-26BA-4185-A0FC-2B97D7AF48D9}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release|Any CPU.Build.0 = Release|Any CPU
- {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {15CC7358-3A5B-4146-A5CB-78DAE75E88E6}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release|Any CPU.Build.0 = Release|Any CPU
- {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {8B265DE5-7D83-41BF-8C87-D802325D2DA5}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {75B3DB45-3055-4A22-854A-BD271D5E4218}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Release|Any CPU.Build.0 = Release|Any CPU
- {75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {75B3DB45-3055-4A22-854A-BD271D5E4218}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {45000ADE-F647-4171-A91A-428CDF682603}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Release|Any CPU.Build.0 = Release|Any CPU
- {45000ADE-F647-4171-A91A-428CDF682603}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {45000ADE-F647-4171-A91A-428CDF682603}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{45000ADE-F647-4171-A91A-428CDF682603}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {45000ADE-F647-4171-A91A-428CDF682603}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {45000ADE-F647-4171-A91A-428CDF682603}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{2CC55F3E-8EA5-4305-8716-D5B944120F82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2CC55F3E-8EA5-4305-8716-D5B944120F82}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
{2CC55F3E-8EA5-4305-8716-D5B944120F82}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
+ {2CC55F3E-8EA5-4305-8716-D5B944120F82}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
{2CC55F3E-8EA5-4305-8716-D5B944120F82}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2CC55F3E-8EA5-4305-8716-D5B944120F82}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
{2CC55F3E-8EA5-4305-8716-D5B944120F82}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
+ {2CC55F3E-8EA5-4305-8716-D5B944120F82}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
- {A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {A68C90C1-AD82-40FD-A18D-F04923514743}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release|Any CPU.Build.0 = Release|Any CPU
- {A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
- {A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
{A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {A68C90C1-AD82-40FD-A18D-F04923514743}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET10|Any CPU.ActiveCfg = Debug-NET10|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET10|Any CPU.Build.0 = Debug-NET10|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET8|Any CPU.ActiveCfg = Debug-NET8|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Debug-NET8|Any CPU.Build.0 = Debug-NET8|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET10|Any CPU.ActiveCfg = Release-NET10|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET10|Any CPU.Build.0 = Release-NET10|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET8|Any CPU.ActiveCfg = Release-NET8|Any CPU
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225}.Release-NET8|Any CPU.Build.0 = Release-NET8|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -510,6 +524,7 @@ Global
{45000ADE-F647-4171-A91A-428CDF682603} = {2302847B-292A-4650-A852-BDED40E1BB1C}
{2CC55F3E-8EA5-4305-8716-D5B944120F82} = {5726BBD8-14F9-4909-B765-3E7709223B61}
{A68C90C1-AD82-40FD-A18D-F04923514743} = {8AAB1719-253A-47D2-970F-1911CFEE84B7}
+ {C78BE7F5-2B6F-D34B-A2D9-EFA97EEF9225} = {8AAB1719-253A-47D2-970F-1911CFEE84B7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F995719A-8D35-49A3-B271-42898A587F57}
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/ArithmeticOperationsCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/ArithmeticOperationsCompilersTest.fs
new file mode 100644
index 000000000..cc7f122e7
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/ArithmeticOperationsCompilersTest.fs
@@ -0,0 +1,190 @@
+module ArithmeticOperationsCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.AdditionStringTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (StringField = "John") |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.StringField + x.StringField) = "JohnJohn" then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.StringField, Is.EqualTo("John"))
+
+ []
+ member this.AdditionDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField + System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 15) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
+
+ []
+ member this.AdditionTimeSpanTest() =
+ Require.ProviderIsNot (StorageProvider.PostgreSql)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.TimeSpanField + System.TimeSpan.FromDays(2)) > System.TimeSpan.FromTicks(111222333) + System.TimeSpan.FromDays(1) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
+
+ []
+ member this.AdditionDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 16.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField + x.DecimalField <= decimal 35 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
+
+ []
+ member this.SubtractionDateTimeTest1() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField - System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 10) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
+
+ []
+ member this.SubtractionDateTimeTest2() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField - new System.DateTime(System.DateTime.Now.Year, 2, 10)) > System.TimeSpan.FromDays(2) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
+
+ []
+ member this.SubtractionTimeSpanTest() =
+ Require.ProviderIsNot (StorageProvider.PostgreSql)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.TimeSpanField - System.TimeSpan.FromTicks(111222)) > System.TimeSpan.FromTicks(111222) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
+
+ []
+ member this.SubtractionDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 16.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField - x.DecimalField + decimal 3 <= decimal 5 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
+
+ []
+ member this.MultiplyDecimalTest() =
+ Require.ProviderIsNot StorageProvider.Firebird
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 16.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField * x.DecimalField <= decimal 350 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
+
+ []
+ member this.DivideDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 16.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField / decimal 2 <= decimal 16 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/ComparisonCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/ComparisonCompilersTest.fs
new file mode 100644
index 000000000..f864d972a
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/ComparisonCompilersTest.fs
@@ -0,0 +1,1094 @@
+module ComparisonCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.EqualityStringTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (StringField = "John") |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.StringField = "John" then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.StringField, Is.EqualTo("John"))
+
+ []
+ member this.EqualityBooleanTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (BoolField = true) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.BoolField = true then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.BoolField, Is.True)
+
+ []
+ member this.EqualityInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field = 16s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.EqualityUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field = 16us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.EqualityInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field = 32 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.EqualityUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field = 32u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.EqualityInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field = 64L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.EqualityUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field = 64UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.EqualitySingleTest() =
+ Require.ProviderIsNot (StorageProvider.Sqlite ||| StorageProvider.Firebird ||| StorageProvider.MySql)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField = 1.14F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.EqualityDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField = 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.EqualityDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField = decimal 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
+
+
+ []
+ member this.InequalityStringTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (StringField = "Not John") |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.StringField <> "John" then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.StringField, Is.EqualTo("Not John"))
+
+ []
+ member this.InequalityDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = System.DateTime.Now.Date.AddDays(-1)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DateTimeField <> System.DateTime.Now then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(System.DateTime.Now.Date.AddDays(-1)))
+
+ []
+ member this.InequalityBooleanTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (BoolField = true) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.BoolField <> false then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.BoolField, Is.True)
+
+ []
+ member this.InequalityInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field <> 15s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.InequalityUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field <> 15us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.InequalityInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field <> 31 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.InequalityUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field <> 31u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.InequalityInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field <> 63L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.InequalityUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field <> 63UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.InequalitySingleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField <> 1.18F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.InequalityDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField <> 63.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.InequalityDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField <> decimal 63.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
+
+
+ []
+ member this.GreaterThanDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = System.DateTime.Now.Date.AddDays(-1)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DateTimeField > System.DateTime.Now.Date.AddDays(-2) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(System.DateTime.Now.Date.AddDays(-1)))
+
+ []
+ member this.GreaterThanInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field > 15s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.GreaterThanUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field > 15us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.GreaterThanInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field > 31 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.GreaterThanUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field > 31u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.GreaterThanInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field > 63L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.GreaterThanUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field > 63UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.GreaterThanSingleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField > 1.11F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.GreaterThanDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField > 63.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.GreaterThanDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField > decimal 63.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
+
+
+ []
+ member this.GreaterThanOrEqualDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = System.DateTime.Now.Date.AddDays(-1)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DateTimeField >= System.DateTime.Now.Date.AddDays(-1) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(System.DateTime.Now.Date.AddDays(-1)))
+
+ []
+ member this.GreaterThanOrEqualInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field >= 16s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.GreaterThanOrEqualUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field >= 16us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.GreaterThanOrEqualInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field >= 32 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.GreaterThanOrEqualUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field >= 32u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.GreaterThanOrEqualInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field >= 64L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.GreaterThanOrEqualUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field >= 64UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.GreaterThanOrEqualSingleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField >= 1.11F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.GreaterThanOrEqualDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField >= 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.GreaterThanOrEqualDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField >= decimal 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
+
+
+ []
+ member this.LessThanDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = System.DateTime.Now.Date.AddDays(-1)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DateTimeField < System.DateTime.Now.Date.AddDays(1) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(System.DateTime.Now.Date.AddDays(-1)))
+
+ []
+ member this.LessThanInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field < 17s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.LessThanUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field < 17us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.LessThanInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field < 33 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.LessThanUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field < 33u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.LessThanInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field < 65L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.LessThanUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field < 65UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.LessThanSingleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField < 1.18F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.LessThanDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField < 65.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.LessThanDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField < decimal 65.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
+
+
+ []
+ member this.LessThanOrDateTimeTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = System.DateTime.Now.Date.AddDays(-1)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DateTimeField <= System.DateTime.Now.Date.AddDays(1) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(System.DateTime.Now.Date.AddDays(-1)))
+
+ []
+ member this.LessThanOrEqualInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = 16s) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int16Field <= 16s then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(16s))
+
+ []
+ member this.LessThanOrEqualUInt16Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X ( UInt16Field = 16us) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt16Field <= 16us then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt16Field, Is.EqualTo(16us))
+
+ []
+ member this.LessThanOrEqualInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int32Field = 32) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int32Field <= 32 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int32Field, Is.EqualTo(32))
+
+ []
+ member this.LessThanOrEqualUInt32Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt32Field = 32u) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt32Field <= 32u then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt32Field, Is.EqualTo(32u))
+
+ []
+ member this.LessThanOrEqualInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int64Field = 64L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.Int64Field <= 64L then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int64Field, Is.EqualTo(64L))
+
+ []
+ member this.LessThanOrEqualUInt64Test() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (UInt64Field = 64UL) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.UInt64Field <= 64UL then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.UInt64Field, Is.EqualTo(64UL))
+
+ []
+ member this.LessThanOrEqualSingleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (SingleField = 1.14F) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.SingleField <= 1.18F then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.SingleField, Is.EqualTo(1.14F))
+
+ []
+ member this.LessThanOrEqualDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DoubleField <= 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(64.0))
+
+ []
+ member this.LessThanOrEqualDecimalTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DecimalField = decimal 64.0) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if x.DecimalField <= decimal 64.0 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DecimalField, Is.EqualTo(decimal 64.0))
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/DateTimeCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/DateTimeCompilersTest.fs
new file mode 100644
index 000000000..858cda0ec
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/DateTimeCompilersTest.fs
@@ -0,0 +1,153 @@
+module DateTimeCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.EqualityTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField = new System.DateTime(2025, 10, 9)) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.InequalityTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField <> new System.DateTime(2025, 10, 8)) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.YearExtractorTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.Year = 2025) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.MonthExtractorTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.Month = 10) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.DayExtractorTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.Day = 9) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.AddYearTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.AddYears(2) = new System.DateTime(2027, 10, 9)) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.AddMonthTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.AddMonths(1) = new System.DateTime(2025, 11, 9)) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
+
+ []
+ member this.AddDayTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DateTimeField = new System.DateTime(2025, 10, 9)) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (x.DateTimeField.AddDays(3) = new System.DateTime(2025, 10, 12)) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(2025, 10, 9)))
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/FsUnit.fs b/Orm/Xtensive.Orm.Tests.FSharp/FsUnit.fs
index 3fb436fa6..57a73aa53 100644
--- a/Orm/Xtensive.Orm.Tests.FSharp/FsUnit.fs
+++ b/Orm/Xtensive.Orm.Tests.FSharp/FsUnit.fs
@@ -12,7 +12,7 @@ let should (f : 'a -> #Constraint) x (y : obj) =
let equal x = new EqualConstraint(x)
-let not x = new NotConstraint(x)
+let notc x = new NotConstraint(x)
let contain x = new ContainsConstraint(x)
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/MathCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/MathCompilersTest.fs
new file mode 100644
index 000000000..a4dd7c9e7
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/MathCompilersTest.fs
@@ -0,0 +1,89 @@
+module MathCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.MinIntegersTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = -5s, Int32Field = -6, Int64Field = -7L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if ((min x.Int16Field -7s) = -7s) && ((min x.Int32Field -7) = -7) && ((min x.Int64Field -8L) = -8L) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(-5s))
+ Assert.That(fetched.Int32Field, Is.EqualTo(-6))
+ Assert.That(fetched.Int64Field, Is.EqualTo(-7L))
+
+ []
+ member this.MinDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = -6.00) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (min x.DoubleField -7.00) = -7.00 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(-6.00))
+
+ []
+ member this.MaxIntegersTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (Int16Field = -5s, Int32Field = -6, Int64Field = -7L) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if ((max x.Int16Field -7s) = -5s) && ((max x.Int32Field -7) = -6) && ((max x.Int64Field -8L) = -7L) then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Int16Field, Is.EqualTo(-5s))
+ Assert.That(fetched.Int32Field, Is.EqualTo(-6))
+ Assert.That(fetched.Int64Field, Is.EqualTo(-7L))
+
+ []
+ member this.MaxDoubleTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (DoubleField = -6.00) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if (max x.DoubleField -7.00) = -6.00 then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.DoubleField, Is.EqualTo(-6.00))
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/Model.fs b/Orm/Xtensive.Orm.Tests.FSharp/Model.fs
index 2d9aac969..8bae4192b 100644
--- a/Orm/Xtensive.Orm.Tests.FSharp/Model.fs
+++ b/Orm/Xtensive.Orm.Tests.FSharp/Model.fs
@@ -1,4 +1,4 @@
-module Model
+module Model
open Xtensive.Orm
[]
@@ -7,10 +7,90 @@ type Person() =
[]
member this.Id
- with get() = this.GetFieldValue "Id"
- and private set(v: int) = this.SetFieldValue ("Id", v)
+ with get() = this.GetFieldValue (nameof this.Id)
+ and private set(v: int) = this.SetFieldValue (nameof this.Id, v)
[]
member this.Name
- with get() = this.GetFieldValue "Name"
- and set(v: string) = this.SetFieldValue ("Name", v)
+ with get() = this.GetFieldValue (nameof this.Name)
+ and set(v: string) = this.SetFieldValue (nameof this.Name, v)
+
+ []
+ member this.CreateOn
+ with get() = this.GetFieldValue (nameof this.CreateOn)
+ and set(v: System.DateTime) = this.SetFieldValue (nameof this.CreateOn, v)
+
+
+[]
+type X() =
+ inherit Entity()
+
+ []
+ member this.Id
+ with get() = this.GetFieldValue (nameof this.Id)
+ and private set(v: int) = this.SetFieldValue (nameof this.Id, v)
+
+ []
+ member this.BoolField
+ with get() = this.GetFieldValue (nameof this.BoolField)
+ and set(v: bool) = this.SetFieldValue (nameof (this.BoolField), v)
+
+ []
+ member this.Int16Field
+ with get() = this.GetFieldValue (nameof this.Int16Field)
+ and set(v: int16) = this.SetFieldValue (nameof (this.Int16Field), v)
+
+ []
+ member this.UInt16Field
+ with get() = this.GetFieldValue (nameof this.UInt16Field)
+ and set(v: uint16) = this.SetFieldValue (nameof (this.UInt16Field), v)
+
+ []
+ member this.Int32Field
+ with get() = this.GetFieldValue (nameof this.Int32Field)
+ and set(v: int32) = this.SetFieldValue (nameof (this.Int32Field), v)
+
+ []
+ member this.UInt32Field
+ with get() = this.GetFieldValue (nameof this.UInt32Field)
+ and set(v: uint32) = this.SetFieldValue (nameof (this.UInt32Field), v)
+
+ []
+ member this.Int64Field
+ with get() = this.GetFieldValue (nameof this.Int64Field)
+ and set(v: int64) = this.SetFieldValue (nameof (this.Int64Field), v)
+
+ []
+ member this.UInt64Field
+ with get() = this.GetFieldValue (nameof this.UInt64Field)
+ and set(v: uint64) = this.SetFieldValue (nameof (this.UInt64Field), v)
+
+ []
+ member this.SingleField
+ with get() = this.GetFieldValue (nameof this.SingleField)
+ and set(v: single) = this.SetFieldValue (nameof (this.SingleField), v)
+
+ []
+ member this.DoubleField
+ with get() = this.GetFieldValue (nameof this.DoubleField)
+ and set(v: double) = this.SetFieldValue (nameof (this.DoubleField), v)
+
+ []
+ member this.DecimalField
+ with get() = this.GetFieldValue (nameof this.DecimalField)
+ and set(v: decimal) = this.SetFieldValue (nameof (this.DecimalField), v)
+
+ []
+ member this.StringField
+ with get() = this.GetFieldValue (nameof this.StringField)
+ and set(v: string) = this.SetFieldValue (nameof (this.StringField), v)
+
+ []
+ member this.DateTimeField
+ with get() = this.GetFieldValue (nameof this.DateTimeField)
+ and set(v: System.DateTime) = this.SetFieldValue (nameof this.DateTimeField, v)
+
+ []
+ member this.TimeSpanField
+ with get() = this.GetFieldValue (nameof this.TimeSpanField)
+ and set(v: System.TimeSpan) = this.SetFieldValue (nameof this.TimeSpanField, v)
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/OtherOperationsCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/OtherOperationsCompilersTest.fs
new file mode 100644
index 000000000..66cff7a47
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/OtherOperationsCompilersTest.fs
@@ -0,0 +1,34 @@
+module OtherOperationsCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.IsNullTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ X (BoolField = false) |> ignore
+ let alll = session.Query.All ()
+ let query =
+ query {
+ for x in alll do
+ if isNull x.StringField then
+ yield x
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.BoolField, Is.False)
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/Test.fs b/Orm/Xtensive.Orm.Tests.FSharp/QueryEntityBackTest.fs
similarity index 91%
rename from Orm/Xtensive.Orm.Tests.FSharp/Test.fs
rename to Orm/Xtensive.Orm.Tests.FSharp/QueryEntityBackTest.fs
index 11fd4d8a2..8890855f6 100644
--- a/Orm/Xtensive.Orm.Tests.FSharp/Test.fs
+++ b/Orm/Xtensive.Orm.Tests.FSharp/QueryEntityBackTest.fs
@@ -1,4 +1,4 @@
-module Test
+module QueryEntityBackTest
open FsUnit
open NUnit.Framework
@@ -32,5 +32,4 @@ type Fixture() =
let list = query |> Seq.toArray
Assert.That(list.Length, Is.EqualTo(1))
let fetched = list.[0]
- Assert.That(fetched.Name, Is.EqualTo("John"))
-
+ Assert.That(fetched.Name, Is.EqualTo("John"))
\ No newline at end of file
diff --git a/Orm/Xtensive.Orm.Tests.FSharp/StringCompilersTest.fs b/Orm/Xtensive.Orm.Tests.FSharp/StringCompilersTest.fs
new file mode 100644
index 000000000..b5694a8a8
--- /dev/null
+++ b/Orm/Xtensive.Orm.Tests.FSharp/StringCompilersTest.fs
@@ -0,0 +1,520 @@
+module StringCompilersTest
+
+open FsUnit
+open NUnit.Framework
+open Xtensive.Orm
+open Xtensive.Orm.Tests
+open Model
+open Microsoft.FSharp.Linq
+
+[]
+type Fixture() =
+ inherit AutoBuildTest()
+
+ override this.BuildConfiguration() =
+ let config = base.BuildConfiguration ()
+ config.Types.Register typeof
+ config
+
+ []
+ member this.EqualityTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name = "John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("John"))
+
+ []
+ member this.InequalityTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name <> "John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.StartsWithTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.StartsWith("Not") then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.EndsWithTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.EndsWith("John") then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.ContainsStrTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Contains("oh") then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.ContainsCharTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Contains('o') then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.SubstringTest1() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Substring(1) = "ot John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.SubstringTest2() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Substring(1, 4) = "ot J" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.ToUpperTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.ToUpper() = "NOT JOHN" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.ToLowerTest() =
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "Not John") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.ToLower() = "not john" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("Not John"))
+
+ []
+ member this.TrimTest() =
+ Require.ProviderIsNot(StorageProvider.Firebird)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = " John ") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Trim() = "John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo(" John "))
+
+ []
+ member this.TrimStartTest() =
+ Require.ProviderIsNot(StorageProvider.Firebird)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = " John ") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.TrimStart() = "John " then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo(" John "))
+
+ []
+ member this.TrimEndTest() =
+ Require.ProviderIsNot(StorageProvider.Firebird)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = " John ") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.TrimEnd() = " John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo(" John "))
+
+ []
+ member this.TrimCharsTest() =
+ Require.ProviderIsNot(StorageProvider.SqlServer ||| StorageProvider.Firebird)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "!?John!?") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.Trim('!', '?') = "John" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("!?John!?"))
+
+ []
+ member this.TrimStartCharsTest() =
+ Require.ProviderIsNot(StorageProvider.SqlServer ||| StorageProvider.Firebird)
+ use session = base.Domain.OpenSession ()
+ use ts = session.OpenTransaction ()
+ Person (Name = "!?John!?") |> ignore
+ let persons = session.Query.All ()
+ let query =
+ query {
+ for p in persons do
+ if p.Name.TrimStart('!', '?') = "John!?" then
+ yield p
+ }
+ let list = query |> Seq.toArray
+ Assert.That(list.Length, Is.EqualTo(1))
+ let fetched = list.[0]
+ Assert.That(fetched.Name, Is.EqualTo("!?John!?"))
+
+ [