阅读 - >消费 - >更新

时间:2013-03-10 16:52:00

标签: c# entity-framework .net-4.0

我正在使用制作人 - 许多消费者模式。

数据库已经有了记录。

  1. 生产者读取记录并将它们放入线程安全队列中。
  2. 消费者线程逐个处理记录并向其添加更多数据。
  3. 现在,制作人必须使用消费者提供的新数据更新数据库中的记录。
  4. 我是Entity Framework的新手,并且不知道使用什么方法来正确更新这些记录。

    我读过我可以从db中选择一个记录列表,直接编辑它的字段,然后只需在上下文对象上调用SaveChanges。但我怀疑一些消费者是否正在编辑List中的一些属性。

1 个答案:

答案 0 :(得分:0)

试试这个。第一个示例显示如何更新单个记录,第二个示例显示如何使用记录列表进行更新。您可以从列表中的任何对象添加或删除所需的数据,只要它们是数据模型中的类型即可。然后调用db上下文并遍历列表中的每个对象。使用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();
        }
    }