EF:查询已分离实体未填充集合的附加实体中的集合

时间:2016-02-02 16:03:24

标签: c# entity-framework

试图在网上找到这个答案很困难,所以我希望我不会在这里问一个愚蠢的问题。

我有两个班级,UserLoginUser可以包含零个或多个Login个。 Login只有一个User。 (ASP.NET标识)

构建我的IUserLoginStore实现,我写了这些方法:

public Task<IList<UserLoginInfo>> GetLoginsAsync(User user)
{
    return Task.Run(() => GetLogins(user));
}

private IList<UserLoginInfo> GetLogins(User user)
{
    using (var context = _contextFactory.Get())
    {
        user = context.Users.Attach(user);
        var logins = new List<UserLoginInfo>();
        logins.AddRange(user.Logins.Select(x => new UserLoginInfo(x.LoginProvider, x.ProviderKey)));
        return logins;
    }
}

...现在,在单元测试中,我正在嘲笑context.Users.Attach(User user)方法来返回一个填充User的{​​{1}}对象,但是......我不是确定EF是否会这样。

如果我将实体附加到上面的EF数据库上下文,但是之前分离的实体由于延迟加载而没有填充Logins属性,我是否能够在附加后访问Logins属性,或者它是否null,执行此方法时抛出IList<Login>

我还没有准备好开始集成测试,所以我无法验证行为是什么。因此,我不知道我的单元测试是否有效。有人可以教我这个吗?

0 个答案:

没有答案