@@ -13,21 +13,25 @@ public class QueryTest : DatabaseIntegrationContext
1313 protected override void SetSchema ( MockSchemaProvider schemaProvider )
1414 {
1515 schemaProvider . SetTables ( new [ ] { "dbo" , "Users" , "BASE TABLE" } ,
16- new [ ] { "dbo" , "UserBio" , "BASE TABLE" } ,
17- new [ ] { "dbo" , "Employee" , "BASE TABLE" } ) ;
16+ new [ ] { "dbo" , "UserBio" , "BASE TABLE" } ,
17+ new [ ] { "dbo" , "UserPayment" , "BASE TABLE" } ,
18+ new [ ] { "dbo" , "Employee" , "BASE TABLE" } ) ;
1819
1920 schemaProvider . SetColumns ( new object [ ] { "dbo" , "Users" , "Id" , true } ,
2021 new [ ] { "dbo" , "Users" , "Name" } ,
2122 new [ ] { "dbo" , "Users" , "Password" } ,
2223 new [ ] { "dbo" , "Users" , "Age" } ,
2324 new [ ] { "dbo" , "UserBio" , "UserId" } ,
24- new [ ] { "dbo" , "UserBio" , "Text" } ,
25- new [ ] { "dbo" , "Employee" , "Id" } ,
25+ new [ ] { "dbo" , "UserBio" , "Text" } ,
26+ new [ ] { "dbo" , "UserPayment" , "UserId" } ,
27+ new [ ] { "dbo" , "UserPayment" , "Amount" } ,
28+ new [ ] { "dbo" , "Employee" , "Id" } ,
2629 new [ ] { "dbo" , "Employee" , "Name" } ,
2730 new [ ] { "dbo" , "Employee" , "ManagerId" } ) ;
2831
2932 schemaProvider . SetPrimaryKeys ( new object [ ] { "dbo" , "Users" , "Id" , 0 } ) ;
30- schemaProvider . SetForeignKeys ( new object [ ] { "FK_Users_UserBio" , "dbo" , "UserBio" , "UserId" , "dbo" , "Users" , "Id" , 0 } ) ;
33+ schemaProvider . SetForeignKeys ( new object [ ] { "FK_Users_UserBio" , "dbo" , "UserBio" , "UserId" , "dbo" , "Users" , "Id" , 0 } ,
34+ new object [ ] { "FK_Users_UserPayment" , "dbo" , "UserPayment" , "UserId" , "dbo" , "Users" , "Id" , 0 } ) ;
3135 }
3236
3337 [ Test ]
@@ -57,8 +61,22 @@ public void SpecifyingColumnsFromOtherTablesShouldAddJoin()
5761 GeneratedSqlIs (
5862 "select [dbo].[users].[name],[dbo].[users].[password],[dbo].[userbio].[text] from [dbo].[users]" +
5963 " left join [dbo].[userbio] on ([dbo].[users].[id] = [dbo].[userbio].[userid])" ) ;
60- }
61-
64+ }
65+
66+ [ Test ]
67+ public void SpecifyingColumnsAndAggregatesFromOtherTablesShouldAddJoins ( )
68+ {
69+ _db . Users . All ( )
70+ . Select ( _db . Users . Name , _db . Users . Password , _db . Users . UserBio . Text , _db . Users . UserPayments . Amount . Sum ( ) )
71+ . ToList ( ) ;
72+ GeneratedSqlIs (
73+ "select [dbo].[users].[name],[dbo].[users].[password],[dbo].[userbio].[text],sum([dbo].[userpayment].[amount]) from [dbo].[users]" +
74+ " left join [dbo].[userbio] on ([dbo].[users].[id] = [dbo].[userbio].[userid])" +
75+ " left join [dbo].[userpayment] on ([dbo].[users].[id] = [dbo].[userpayment].[userid])" +
76+ " group by [dbo].[users].[name],[dbo].[users].[password],[dbo].[userbio].[text]"
77+ ) ;
78+ }
79+
6280 [ Test ]
6381 public void SpecifyingCountShouldSelectCount ( )
6482 {
0 commit comments