【问题标题】:FindAsync with non-primary key value具有非主键值的 FindAsync
【发布时间】:2013-09-28 15:48:17
【问题描述】:
public class Foo
{
     public int Id { get; set; }
     public int UserId { get; set; }
}

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

DatabaseContext db = new DatabaseContext();
Foo foo = await db.Foos.FindAsync(fooid);

如何根据 UserId 的值异步获取特定用户的所有 Foo?

【问题讨论】:

    标签: c# asp.net-web-api async-await entity-framework-6


    【解决方案1】:

    假设您使用的是 Entity Framework 6.0(预发布版):

    var userId = ...;
    var foos = await db.Foos.Where(x => x.UserId == userId).ToListAsync();
    

    【讨论】:

    • 提示:如果您缺少 ToListAsync(),则使用 System.Data.Entity 添加;
    • 有什么办法可以偷懒吗?
    • @Sinjai:如果你的意思是懒惰地加载实体属性,那么没有。 EF 不支持异步延迟加载。
    • @StephenCleary 这样的代码不会成为问题,那么,当数据库达到一定大小时?
    • @Sinjai:如果您对知道自己需要的关系使用预加载,并为您可能需要或可能不需要的关系使用显式查询,那么它在数据库方面与延迟加载关系一样有效.如果不清楚,我建议您提出自己的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多