Dapper.net内联接where参数

时间:2015-04-16 08:31:18

标签: sql dapper

我有一个非常简单的sql查询,由dapper.net执行

  using (var sqlCon = new SqlConnection(Database.ReturnDatabaseConnection()))
        {
            var resultList = sqlCon.Query<UserProfile, UserAddress, UserProfile>(@"

                            UPDATE [User].[User_Profile]
                                SET ProfileStatus = 4
                            WHERE Id = @userId

                            SELECT u.Id [userId], u.Username, u.Age,
                                   u.ProfileStatus,
                                   a.Id [AddressId], a.Country, a.[State], a.City,
                                   a.Latitude, a.Longitude
                            FROM [User].[User_Profile] u
                            INNER JOIN [User].[User_Address] a on u.id = a.UserId", (u, a) =>
                             {
                                 u.UserId = a.UserId;
                                 return u;
                             },
                             splitOn: "UserId"
                             ).AsQueryable();


        }

我要做的是首先更新userprofile的状态,然后将用户配置文件加入到用户地址表中,检索几列并填充我一直关注this tutorial的userprofile类看起来很直接,我试图解决的问题是我怎样才能包含where语句,这将是

where u.Id = @UserId 

然后在上面的查询中包含它?

1 个答案:

答案 0 :(得分:0)

WHERE跟在FROMJOIN s:

之后
SELECT u.Id [userId], u.Username, u.Age,
       u.ProfileStatus,
       a.Id [AddressId], a.Country, a.[State], a.City,
       a.Latitude, a.Longitude
FROM [User].[User_Profile] u
INNER JOIN [User].[User_Address] a on u.id = a.UserId
WHERE u.Id = @UserId 

语法为here;请注意,就其在语法中的位置而言,联接在技术上是FROM的一部分。