在使用批量更新组件时,我使用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 我所需要的字段吗?
我也遇到这个问题,去github上问原作者了,还没回我
我还发现执行update前执行了select语句https://github.com/zzzprojects/EntityFramework-Plus/issues/452
– nlh774 5年前