具有非主键值的 FindAsync
Posted
技术标签:
【中文标题】具有非主键值的 FindAsync【英文标题】:FindAsync with non-primary key value 【发布时间】: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?
【问题讨论】:
【参考方案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:如果您对知道自己需要的关系使用预加载,并为您可能需要或可能不需要的关系使用显式查询,那么它在数据库方面与延迟加载关系一样有效.如果不清楚,我建议您提出自己的问题。以上是关于具有非主键值的 FindAsync的主要内容,如果未能解决你的问题,请参考以下文章
在 MySQL 中,如何编写 INSERT-INTO-VALUES 查询,以便在已存在具有相同主键值的记录时将其静默丢弃?