c# - 读取 -> 使用 -> 更新

标签 c# entity-framework .net-4.0

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

数据库已经有记录。

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

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

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

最佳答案

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

关于c# - 读取 -> 使用 -> 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324828/

相关文章:

c# - 带有 CreateMissingTypeMaps 和 AddProfile 的 AutoMapper

c# - Entity Framework 6 - 代码优先 - FK 在继承类中生成,但关系在基类中定义

.net-4.0 - Windows Workflow Foundation 4.0教程/简介

c# - 如果/当 DllImport 被多次调用时会发生什么?

c# - TextBox 可以显示的最大字符数

php - Doctrine 从数据库更新实体

c# - Linq To Entities 内部转换

.net - 使用应用程序配置在 .NET 4 中运行 .NET 3.5 构建的混合模式程序集也需要 Framework 3.5

c# - Entity Framework 、现有数据库、代码优先 - 忽略数据库列和更改数据类型

c# - NUnit Gui Runner 中的每个选项卡的用途是什么?