2

我正在使用生产者 - 许多消费者模式。

数据库已经有记录。

  1. 生产者读取记录并将它们放入线程安全队列。
  2. 消费者线程一一处理记录并向其添加更多数据。
  3. 现在生产者必须用消费者提供的新数据更新数据库中的记录。

我是 Entity Framework 的新手,不知道使用什么方法来正确更新这些记录。

我读过我可以从数据库中选择一个记录列表,直接将字段编辑到它,然后简单地调用SaveChanges上下文对象。但我怀疑一些消费者会在编辑列表中的一些属性的过程中。

4

1 回答 1

0

尝试这个。第一个示例显示如何更新单个记录,第二个示例显示如何使用记录列表进行更新。您可以从列表中的任何对象中添加或删除所需的数据,只要它们属于您的数据模型中的类型。然后调用您的数据库上下文并遍历列表中的每个对象。使用 SaveChanges() 更新数据库。

    public List<Customer> MyCustomers { get; set; }

    public void GetCustomers()
    {
        using(var context = new SalesContext())
        {
            var customers = from b in context.Customers
                            select b;

            MyCustomers = customers.ToList<Customer>();
        }
    }

    public void MethodThatChangesCustomers()
    {

    }

    public void UpdateDatabase()
    {
        using(var context = new SalesContext())
        {
            foreach (var person in MyCustomers)
            {
                context.Customers.Add(person);
            }
            context.SaveChanges();
        }
    }
于 2013-03-10T17:05:32.193 回答