Pie*_*rre 3 c# entity-framework database-performance
是否有可能在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;
}
Run Code Online (Sandbox Code Playgroud)
如果每个都Dog包含对该引用的引用,则Member可以公开该关系的另一端(如果您还没有):
public class Member
{
public int ID { get; set; }
// ...
public virtual ICollection<Dog> Dogs { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
684 次 |
| 最近记录: |