当前位置:  开发笔记 > 编程语言 > 正文

为什么我不能直接访问属性".SingleAsync().Property"?

如何解决《为什么我不能直接访问属性".SingleAsync().Property"?》经验,为你挑选了1个好方法。

我的测试代码:

using (var db = new MyDbContext())
{
  string id = "";
  string pictureUrl = db.UserProfile.Single(x => x.Id == id).PictureUrl; //valid syntax

  var user = await db.UserProfile.SingleAsync(x => x.Id == id); //valid syntax
  string _pictureUrl = user.PictureUrl; //valid syntax
}

我的问题是:我不能直接声明pictureUrl这样:

string pictureUrl = await db.UserProfile.SingleAsync(x => x.Id == id).PictureUrl;

我试过这样做,它告诉我错误信息:

'Task'不包含定义, 'PictureUrl'也没有'PictureUrl'接受第一个类型参数的扩展方法'Task'.

你能解释一下为什么吗?



1> i3arnon..:

SingleAsync返回一个Task.那项任务没有你的财产.您需要等待任务以获取实际UserProfileViewModels结果

要告诉编译器你想要结果的属性而不是你需要在括号中包围await表达式的任务:

string pictureUrl = (await db.UserProfile.SingleAsync(x => x.Id == id)).PictureUrl;

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有