如何在DataContext处理后保留实体对象?

时间:2011-08-05 11:22:27

标签: linq entity-framework datacontext

当我从数据库中获取数据时,我使用这种风格

public class User
{
    public static List<User> GetUsers()
    {
        List<User> users = new Users();
        using ( var context = new DataContext())
        {
            users = context.Users.ToList();
        }

        return users;
    }
}

从数据库中获取数据后,我想过滤用户喜欢这个

List<User> userResultList = User.GetUsers();   
userResultList.Where(u => u.IsActive == true);

但无法过滤,我收到此错误

  

ObjectContext实例已被释放,无法再使用   对于需要连接的操作。

我的问题: 可以在DataContext处理后过滤结果对象吗?

非常感谢您的支持。

更新!!!

我认为我可以在方法范围内创建新的DbContext,我想要检索数据

这是否足够好?

实施例

public class User
    {
        public static List<User> GetUsers()
        {
            List<User> users = new Users();

            var context = new DataContext())
            users = context.Users.ToList();

            return users;
        }
    }

1 个答案:

答案 0 :(得分:0)

我想知道你克隆列表是否会解决错误?

User[] L = new User[users.Count];
users.CopyTo(L);

猜测:

你看起来应该在表面上起作用。

我想知道ToList()返回的东西是否是从列表继承的东西,并且内部保留了一些隐藏的上下文感知。

我现在无法测试这个想法。稍后要考虑的事情。