Linq查询中的缓存结果

时间:2015-08-11 23:49:08

标签: linq asp.net-core asp.net-core-mvc entity-framework-core

  

编辑:起初我认为这与组件视图有关,但我已设法将问题略微隔离开来。

我有以下课程:

public class TmpContext
{
    public NYPContext db { get; set; }

    public IEnumerable<SelectListItem> GetUserListFromSelection(int[] selection)
    {
        var userList = from u in db.UsuariosIntranet
                       join su in selection on u.Id equals su
                       select new SelectListItem()
                       {
                           Text = string.Format("{0}, {1}", u.ApellidoPaterno, u.Nombres),
                           Value = u.Id.ToString(),
                       };
        return userList;
    }
}

我有一个视图,它接收上面的类作为模型,并在其中包含以下代码:

@{
    // First list
    var list1 = new int[] { 4947850 };
    var a = Model.GetUserListFromSelection(list1);
    foreach (var user in a)
    {
        <p class="tag">@user.Text</p>
    }

    // Second list, note the different ids
    var list2 = new int[] { 2, 3 };
    var b = Model.GetUserListFromSelection(list2);

    foreach (var user in b)
    {
        <p class="tag">@user.Text</p>

    }

    // Third list
    var o = list1.ToList();
    // add a new id
    o.Add(5185969);
    // int[] otra = ;
    var c = Model.GetUserListFromSelection(o.ToArray());
    foreach (var user in c)
    {
        <p class="tag">@user.Text</p>
    }
}

预期结果是三个不同的列表,但不知怎的,我得到了第一个重复三次的项目。

这是预期的行为吗?

1 个答案:

答案 0 :(得分:3)

它似乎是一个错误,它已经修复。谈谈快速周转!

https://github.com/aspnet/EntityFramework/issues/2826