繁体   English   中英

EF如何包含要查询的子对象

[英]EF how to include subobject to query

我有两个表:用户和令牌,如下所示。

在此处输入图片说明

现在,我使用EF编写查询,它使用Token对象,但Token对象内的子对象User为空。 我应该如何修改查询以获取带有User对象的令牌?

using (var db = new AccountDbContext())
{
    Token tok = db.Tokens
       .FirstOrDefault(p => tokenValue == p.Value) == 0);

    if (tok.User == null)
    {
        //I'm there, but I 100% of sure thata this relation exists
        throw new Exception();
    }
}

实体框架不会自动将所有相关对象从数据库中加载出去-如果存在许多具有很多关系的表,这可能会非常昂贵。 您可能需要告诉EF在查询中加载关联的User (称为“紧急加载”),或者需要启用“延迟加载”,以便EF在首次访问时加载它。 (有关更多详细信息,请参见MSDN文章“ 加载相关实体 ”。

这是一个急切加载的示例(由于我没有您的模型,因此未经过全面测试):

using (var db = new AccountDbContext())
{
    Token tok = db.Tokens.Include(n => n.User)
       .FirstOrDefault(p => tokenValue == p.Value) == 0);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM