【发布时间】:2015-09-25 07:20:18
【问题描述】:
是否可以在 1 条语句中编写此内容(仅进行 1 次 db 调用?)并且仍然能够区分“该成员不存在”和“该成员确实存在但没有狗”。
public IEnumerable<Dog> GetDogsOfMember(int id)
{
if (dbContext.Members.Any(i => i.ID == id))
{
return dbContext.Dogs.Where(i => i.Member.ID == id);
}
return null;
}
【问题讨论】:
-
默认情况下,如果你的 .Where 没有结果,它会导致你“没有错误”,搜索后返回 null。因此,即使不检查,您也可以将其编码为 public IEnumerable
GetDogsOfMember(int id) { return dbContext.Dogs.Where(i => i.Member.ID == id); } -
你使用缓存来限制数据库调用
-
没错,但我希望能够区分“如果该成员不存在”或“如果该成员没有狗”。我想我可以使用它。
标签: c# entity-framework database-performance