首页 新闻 会员 周边

如何在 LINQ 中 Select 出 Tuple 类的值(.NET Core)

0
悬赏园豆:50 [已解决问题] 解决于 2019-10-27 16:18

比如下面的 C# LINQ 代码

var (email, status) = await _userRepository.GetByUserId(userId)
    .Select(u => (u.Email, u.Status))
    .FirstOrDefaultAsync();

编译时会出现下面的错误提示

An expression tree may not contain a tuple literal.

请问如何解决?

dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2019-10-27 15:37
< >
分享
最佳答案
1

使用 Tuple.Create 可以搞定

var (email, status) = await _userRepository.GetByUserId(userId)
    .Select(u => Tuple.Create(u.Email, u.Status))
    .FirstOrDefaultAsync();
dudu | 高人七级 |园豆:31003 | 2019-10-27 16:17
其他回答(1)
0

await _userRepository.GetByUserId(userId)这里要保证是iqueryable对象,可用tolist()把iqueryable转化为iqueryable集合类型,然后Select(u => Tuple.Create(u.Email, u.Status))即可,第一步不转化会报错

dreamw | 园豆:190 (初学一级) | 2020-03-22 19:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册