Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit f228a19

Browse files
committed
Merge pull request #299 from madaleno/master
updated FirebirdTests/SqlServerExpressionsTest
2 parents cc28614 + 2d64d05 commit f228a19

File tree

12 files changed

+321
-12
lines changed

12 files changed

+321
-12
lines changed

src/AllDialectsTest/AllDialectsTest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
</ProjectReference>
7676
</ItemGroup>
7777
<ItemGroup>
78-
<Content Include="..\SqlServerExpressionsTets\test.mdf">
78+
<Content Include="..\SqlServerExpressionsTest\test.mdf">
7979
<Link>test.mdf</Link>
8080
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
8181
</Content>

src/ServiceStack.OrmLite.sln

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 2012
3+
# Visual Studio 2013
4+
VisualStudioVersion = 12.0.20617.1 PREVIEW
5+
MinimumVisualStudioVersion = 10.0.40219.1
46
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{6CEB3EDE-9F02-4F4F-BD8A-1B2939C1AE6E}"
57
ProjectSection(SolutionItems) = preProject
68
..\build\build.bat = ..\build\build.bat
@@ -72,7 +74,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteExpressionsTest", "Sq
7274
EndProject
7375
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgreSQLExpressionsTest", "PostgreSQLExpressionsTest\PostgreSQLExpressionsTest.csproj", "{348E82EE-7D30-4D60-90E5-CA60C290C589}"
7476
EndProject
75-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerExpressionsTets", "SqlServerExpressionsTets\SqlServerExpressionsTets.csproj", "{19825530-1D25-4528-AB6D-E236809A7F34}"
77+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerExpressionsTest", "SqlServerExpressionsTest\SqlServerExpressionsTest.csproj", "{19825530-1D25-4528-AB6D-E236809A7F34}"
7678
EndProject
7779
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AllDialectsTest", "AllDialectsTest\AllDialectsTest.csproj", "{A55FAA4E-7900-4F77-AEA2-FA7F44D0A480}"
7880
EndProject
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using ServiceStack.OrmLite;
6+
using System.IO;
7+
using System.Data;
8+
using ServiceStack.DataAnnotations;
9+
using ServiceStack.Common.Utils;
10+
using ServiceStack.OrmLite.SqlServer;
11+
12+
namespace SqlServerExpressionsTest
13+
{
14+
public class User_2
15+
{
16+
public long Id { get; set; }
17+
18+
[Index]
19+
public string Name { get; set; }
20+
21+
public DateTime CreatedDate { get; set; }
22+
23+
public long? UserDataId { get; set; }
24+
25+
public long UserServiceId { get; set; }
26+
27+
[Ignore]
28+
[Alias("DataValue")]
29+
public string UserDataValue { get; set; }
30+
31+
[Ignore]
32+
[Alias("ServiceName")]
33+
public string UserServiceName { get; set; }
34+
}
35+
36+
[Alias("UserData_2")]
37+
public class UserData_2
38+
{
39+
public long Id { get; set; }
40+
public string DataValue { get; set; }
41+
}
42+
43+
[Alias("UserService_2")]
44+
public class UserService_2
45+
{
46+
public long Id { get; set; }
47+
public string ServiceName { get; set; }
48+
}
49+
50+
51+
public class IgnoredFieldSelectTest
52+
{
53+
public static void Test(string connectionString)
54+
{
55+
//using (IDbConnection db = ":memory:".OpenDbConnection())
56+
using (IDbConnection db = connectionString.OpenDbConnection())
57+
{
58+
db.CreateTable<User_2>(true);
59+
db.CreateTable<UserData_2>(true);
60+
db.CreateTable<UserService_2>(true);
61+
62+
//Insert Test
63+
db.Insert(new UserData_2 { Id = 5, DataValue = "Value-5" });
64+
db.Insert(new UserData_2 { Id = 6, DataValue = "Value-6" });
65+
66+
db.Insert(new UserService_2 { Id = 8, ServiceName = "Value-8" });
67+
db.Insert(new UserService_2 { Id = 9, ServiceName = "Value-9" });
68+
69+
var user2 = new User_2 { Id = 1, Name = "A", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 8 };
70+
db.Insert(user2);
71+
db.Insert(new User_2 { Id = 2, Name = "B", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 9 });
72+
db.Insert(new User_2 { Id = 3, Name = "B", CreatedDate = DateTime.Now });
73+
74+
//Update Test
75+
user2.CreatedDate = DateTime.Now;
76+
db.Update<User_2>(user2,x=>x.Id == 1);
77+
78+
//Select Test
79+
80+
var rowsB = db.Select<User_2>("Name = {0}", "B");
81+
var rowsB1 = db.Select<User_2>(user => user.Name == "B");
82+
83+
var rowsUData = db.Select<UserData_2>();
84+
var rowsUServ = db.Select<UserService_2>();
85+
86+
var jn2 = new JoinSqlBuilder<User_2, User_2>();
87+
jn2 = jn2.Join<User_2, UserData_2>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.DataValue})
88+
.Join<User_2, UserService_2>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
89+
.OrderByDescending<User_2>(x => x.Name)
90+
.OrderBy<User_2>(x => x.Id)
91+
.Select<User_2>(x => x.Id);
92+
93+
var sql2 = jn2.ToSql();
94+
var items2 = db.Query<User_2>(sql2);
95+
Console.WriteLine("Ignored Field Selected Items - {0}",items2.Count());
96+
97+
var item = db.FirstOrDefault<User_2>(sql2);
98+
99+
}
100+
}
101+
}
102+
}
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using ServiceStack.OrmLite;
6+
using System.IO;
7+
using System.Data;
8+
using ServiceStack.DataAnnotations;
9+
using ServiceStack.Common.Utils;
10+
using ServiceStack.OrmLite.SqlServer;
11+
12+
namespace SqlServerExpressionsTest
13+
{
14+
public class User
15+
{
16+
public long Id { get; set; }
17+
18+
[Index]
19+
public string Name { get; set; }
20+
21+
public DateTime CreatedDate { get; set; }
22+
23+
public long? UserDataId { get; set; }
24+
25+
public long UserServiceId { get; set; }
26+
27+
}
28+
29+
public class UserEx
30+
{
31+
[BelongTo(typeof(User))]
32+
public long Id { get; set; }
33+
[BelongTo(typeof(User))]
34+
public string Name { get; set; }
35+
public DateTime CreatedDate { get; set; }
36+
[BelongTo(typeof(UserData))]
37+
public string UserDataValue { get; set; }
38+
[BelongTo(typeof(UserService))]
39+
[Alias("ServiceName")]
40+
public string UserServiceName { get; set; }
41+
}
42+
43+
44+
[Alias("UserData")]
45+
public class UserData
46+
{
47+
[AutoIncrement]
48+
public long Id { get; set; }
49+
public string UserDataValue { get; set; }
50+
}
51+
52+
[Alias("UserService")]
53+
public class UserService
54+
{
55+
[AutoIncrement]
56+
public long Id { get; set; }
57+
public string ServiceName { get; set; }
58+
}
59+
60+
public class JoinTest
61+
{
62+
public static void Test(string connectionString)
63+
{
64+
//using (IDbConnection db = ":memory:".OpenDbConnection())
65+
using (IDbConnection db = connectionString.OpenDbConnection())
66+
{
67+
db.CreateTable<User>(true);
68+
db.CreateTable<UserData>(true);
69+
db.CreateTable<UserService>(true);
70+
71+
db.Insert(new UserData { Id = 5, UserDataValue = "Value-5" });
72+
db.Insert(new UserData { Id = 6, UserDataValue = "Value-6" });
73+
74+
db.Insert(new UserService { Id = 8, ServiceName = "Value-8" });
75+
db.Insert(new UserService { Id = 9, ServiceName = "Value-9" });
76+
77+
db.Insert(new User { Id = 1, Name = "A", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 8 });
78+
db.Insert(new User { Id = 2, Name = "B", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 9 });
79+
db.Insert(new User { Id = 3, Name = "B", CreatedDate = DateTime.Now });
80+
81+
82+
var rowsB = db.Select<User>("Name = {0}", "B");
83+
var rowsB1 = db.Select<User>(user => user.Name == "B");
84+
85+
var jn = new JoinSqlBuilder<UserEx, User>();
86+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.UserDataValue })
87+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
88+
.OrderByDescending<User>(x=>x.Name)
89+
.OrderBy<User>(x=>x.Id)
90+
.Select<User>(x=>x.Id)
91+
.Where<User>(x=> x.Id == 0);
92+
93+
var sql = jn.ToSql();
94+
var items = db.Query<UserEx>(sql);
95+
96+
jn.Clear();
97+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
98+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
99+
.OrderByDescending<User>(x => x.Name)
100+
.OrderBy<User>(x => x.Id)
101+
.OrderByDescending<UserService>(x => x.ServiceName)
102+
.Where<User>(x => x.Id > 0)
103+
.Or<User>(x => x.Id < 10)
104+
.And<User>(x => x.Name != "" || x.Name != null);
105+
106+
var sql2 = jn.ToSql();
107+
var item = db.QuerySingle<UserEx>(sql2);
108+
109+
jn.Clear();
110+
jn = new JoinSqlBuilder<UserEx, User>();
111+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
112+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
113+
.OrderByDescending<User>(x=>x.Name)
114+
.OrderBy<User>(x=>x.Id)
115+
.SelectAll<UserData>()
116+
.Where<User>(x=> x.Id == 0);
117+
118+
var sql3 = jn.ToSql();
119+
var items3 = db.Query<UserEx>(sql3);
120+
121+
jn.Clear();
122+
jn = new JoinSqlBuilder<UserEx, User>();
123+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.UserDataValue })
124+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
125+
.OrderByDescending<User>(x=>x.Name)
126+
.OrderBy<User>(x=>x.Id)
127+
.SelectDistinct()
128+
.SelectAll<UserData>()
129+
.Where<User>(x=> x.Id == 0);
130+
131+
var sql4 = jn.ToSql();
132+
var items4 = db.Query<UserEx>(sql4);
133+
134+
jn.Clear();
135+
jn = new JoinSqlBuilder<UserEx, User>();
136+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
137+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
138+
.OrderByDescending<User>(x=>x.Name)
139+
.OrderBy<User>(x=>x.Id)
140+
.SelectCount<User>(x=>x.Id)
141+
.Where<User>(x=> x.Id == 0);
142+
143+
var sql5 = jn.ToSql();
144+
var items5 = db.GetScalar<long>(sql5);
145+
146+
jn.Clear();
147+
jn = new JoinSqlBuilder<UserEx, User>();
148+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
149+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
150+
.OrderByDescending<User>(x => x.Name)
151+
.OrderBy<User>(x=>x.Id)
152+
.SelectMax<User>(x=>x.Id)
153+
.Where<User>(x=> x.Id == 0);
154+
155+
var sql6 = jn.ToSql();
156+
var items6 = db.GetScalar<long>(sql6);
157+
158+
jn.Clear();
159+
jn = new JoinSqlBuilder<UserEx, User>();
160+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
161+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
162+
.OrderByDescending<User>(x => x.Name)
163+
.OrderBy<User>(x=>x.Id)
164+
.SelectMin<User>(x=>x.Id)
165+
.Where<User>(x=> x.Id == 0);
166+
167+
var sql7 = jn.ToSql();
168+
var items7 = db.GetScalar<long>(sql7);
169+
170+
jn.Clear();
171+
jn = new JoinSqlBuilder<UserEx, User>();
172+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
173+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
174+
.OrderByDescending<User>(x => x.Name)
175+
.OrderBy<User>(x=>x.Id)
176+
.SelectAverage<User>(x=>x.Id)
177+
.Where<User>(x=> x.Id == 0);
178+
179+
var sql8 = jn.ToSql();
180+
var items8 = db.GetScalar<long>(sql8);
181+
182+
jn.Clear();
183+
jn = new JoinSqlBuilder<UserEx, User>();
184+
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
185+
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
186+
.OrderByDescending<User>(x => x.Name)
187+
.OrderBy<User>(x=>x.Id)
188+
.SelectSum<User>(x=>x.Id)
189+
.Where<User>(x=> x.Id == 0);
190+
191+
var sql9 = jn.ToSql();
192+
var items9 = db.GetScalar<long>(sql9);
193+
194+
}
195+
}
196+
}
197+
}

src/SqlServerExpressionsTets/Program.cs renamed to src/SqlServerExpressionsTest/Program.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
using ServiceStack.OrmLite.SqlServer;
1515

1616

17-
namespace SqlServerExpressionsTets
17+
namespace SqlServerExpressionsTest
1818
{
1919
public class Author
2020
{
@@ -49,6 +49,12 @@ public static void Main(string[] args)
4949
OrmLiteConfig.DialectProvider = SqlServerOrmLiteDialectProvider.Instance;
5050
SqlExpressionVisitor<Author> ev = OrmLiteConfig.DialectProvider.ExpressionVisitor<Author>();
5151

52+
Console.WriteLine("Join Test");
53+
//JoinTest.Test(GetFileConnectionString());
54+
55+
Console.WriteLine("Ignored Field Select Test");
56+
IgnoredFieldSelectTest.Test(GetFileConnectionString());
57+
5258
using (IDbConnection db = GetFileConnectionString().OpenDbConnection())
5359
{
5460
db.DropTable<Author>();
@@ -290,8 +296,7 @@ public static void Main(string[] args)
290296

291297
private static string GetFileConnectionString()
292298
{
293-
var connectionString = "~/test.mdf".MapAbsolutePath();
294-
299+
var connectionString = "~/test.mdf".MapAbsolutePath();
295300

296301

297302
return connectionString;

src/SqlServerExpressionsTets/SqlServerExpressionsTets.csproj renamed to src/SqlServerExpressionsTest/SqlServerExpressionsTest.csproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -8,9 +8,10 @@
88
<ProjectGuid>{19825530-1D25-4528-AB6D-E236809A7F34}</ProjectGuid>
99
<OutputType>Exe</OutputType>
1010
<AppDesignerFolder>Properties</AppDesignerFolder>
11-
<RootNamespace>SqlServerExpressionsTets</RootNamespace>
12-
<AssemblyName>SqlServerExpressionsTets</AssemblyName>
11+
<RootNamespace>SqlServerExpressionsTest</RootNamespace>
12+
<AssemblyName>SqlServerExpressionsTest</AssemblyName>
1313
<FileAlignment>512</FileAlignment>
14+
<IsWebBootstrapper>false</IsWebBootstrapper>
1415
<PublishUrl>publish\</PublishUrl>
1516
<Install>true</Install>
1617
<InstallFrom>Disk</InstallFrom>
@@ -23,7 +24,6 @@
2324
<MapFileExtensions>true</MapFileExtensions>
2425
<ApplicationRevision>0</ApplicationRevision>
2526
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
26-
<IsWebBootstrapper>false</IsWebBootstrapper>
2727
<UseApplicationTrust>false</UseApplicationTrust>
2828
<BootstrapperEnabled>true</BootstrapperEnabled>
2929
</PropertyGroup>
@@ -64,6 +64,8 @@
6464
<Compile Include="..\GlobalAssemblyInfo.cs">
6565
<Link>Properties\GlobalAssemblyInfo.cs</Link>
6666
</Compile>
67+
<Compile Include="IgnoredFieldSelectTest.cs" />
68+
<Compile Include="JoinTest.cs" />
6769
<Compile Include="Program.cs" />
6870
<Compile Include="Properties\AssemblyInfo.cs" />
6971
</ItemGroup>

0 commit comments

Comments
 (0)