首页 新闻 会员 周边

批量更新组件“Z.EntityFramework.Plus”UpdateAsync 的Innerjoin问题

0
悬赏园豆:10 [待解决问题]

在使用批量更新组件时,我使用UpdateAsync有如下疑惑:
更新代码如下:

 public async Task<bool> SyncUserGrade(int userId, int score)
        {
            var user = _userInfo.Where(u => u.UserID == userId);

            return await _unitOfWork.UpdateAsync(user,
                u => new UserInfo { Score = score });
        }

查询出的SQL语句如下:

  exec sp_executesql N'
UPDATE A 
SET A.[Score] = @zzz_BatchUpdate_0
FROM [Users] AS A
INNER JOIN ( SELECT [u].[UserID],[u].[IsReplyNotify], [u].[LoginName], [u].[Score], [u].[Score]
FROM [Users] AS [u]
WHERE [u].[UserID] = @__userId_0
           ) AS B ON A.[UserID] = B.[UserID]
',N'@__userId_0 int,@zzz_BatchUpdate_0 int',
@__userId_0=1,@zzz_BatchUpdate_0=99

 其实我Inner join中只用到了一个UserId ,但是它把整个表都select出来了。
是否有办法可以只Select 我所需要的字段吗?

BUTTERAPPLE的主页 BUTTERAPPLE | 老鸟四级 | 园豆:3190
提问于:2017-04-17 14:00

我还发现执行update前执行了select语句https://github.com/zzzprojects/EntityFramework-Plus/issues/452

nlh774 5年前
< >
分享
所有回答(1)
0

我也遇到这个问题,去github上问原作者了,还没回我

nlh774 | 园豆:204 (菜鸟二级) | 2019-01-29 12:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册