C# 具有非主键值的FindAsync

C# 具有非主键值的FindAsync,c#,asp.net-web-api,async-await,entity-framework-6,C#,Asp.net Web Api,Async Await,Entity Framework 6,这似乎是异步执行此操作的方法: public class Foo { public int Id { get; set; } public int UserId { get; set; } } 如何基于UserId的值异步获取特定用户的所有foo?假设您使用的是实体框架6.0(预发布): 提示:如果缺少ToListSync(),请使用System.Data.Entity添加;有什么方法可以延迟加载吗?@Sinjai:如果你是指延迟加载实体属性,那么没有。EF不支持异步延迟加

这似乎是异步执行此操作的方法:

public class Foo
{
     public int Id { get; set; }
     public int UserId { get; set; }
}

如何基于UserId的值异步获取特定用户的所有foo?

假设您使用的是实体框架6.0(预发布):


提示:如果缺少ToListSync(),请使用System.Data.Entity添加;有什么方法可以延迟加载吗?@Sinjai:如果你是指延迟加载实体属性,那么没有。EF不支持异步延迟加载。@StephenCleary这样的代码不会成为问题,那么,当数据库达到一定大小时?@Sinjai:如果你对你知道需要的关系使用渴望加载,对于您可能需要或不需要的关系的显式查询,它与延迟加载的关系一样高效。如果这不清楚,我建议你问自己的问题。
DatabaseContext db = new DatabaseContext();
Foo foo = await db.Foos.FindAsync(fooid);
var userId = ...;
var foos = await db.Foos.Where(x => x.UserId == userId).ToListAsync();