gpt4 book ai didi

c# - 使用 Entity Framework 减少数据库调用

转载 作者:行者123 更新时间:2023-11-30 14:52:41 25 4
gpt4 key购买 nike

是否可以在 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;
}

最佳答案

如果每个 Dog 已经包含对 Member 的引用,您可以公开关系的另一端(如果您还没有):

public class Member
{
public int ID { get; set; }
// ...
public virtual ICollection<Dog> Dogs { get; set; }
}

然后您可以使用 Include() 发出单个高效查询:

public IEnumerable<Dog> GetDogsOfMember(int id)
{
var memberWithDogs = dbContext.Members
.Include(i => i.Dogs)
.SingleOrDefault(i => i.ID == id);

if (memberWithDogs != null)
return memberWithDogs.Dogs;

return null;
}

关于c# - 使用 Entity Framework 减少数据库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com