Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#并行编程将数据插入字段_C#_Linq_Entity Framework 6 - Fatal编程技术网

如何使用C#并行编程将数据插入字段

如何使用C#并行编程将数据插入字段,c#,linq,entity-framework-6,C#,Linq,Entity Framework 6,我正在使用实体框架和Linq技术,但当我尝试使用并行时,我遇到了一个例外 这是我的尝试 class Program { static void Main(string[] args) { DbContextClass db = new DbContextClass(); Parallel.For(0, 10, i => { Category ct =

我正在使用实体框架和Linq技术,但当我尝试使用并行时,我遇到了一个例外

这是我的尝试

 class Program
{
    static void Main(string[] args)
    {
        DbContextClass db = new DbContextClass();

                Parallel.For(0, 10, i =>
                {
                    Category ct = new Category
                    {
                        NameCategory = "SomeText"                           
                    };
                    db.Categories.Add(ct);
                });                           

             db.SaveChanges();
            Console.ReadKey();
    }
}
核对

假设所有代码都不是线程安全的。所有主要的API,如DbContext、DbSet等,都不是线程安全的。有一些线程安全部分,通常是单例或类似的共享服务,但几乎所有这些都是内部的

这并不意味着您不能使用相同的
DBContext
在paraller中工作。只需将代码更改为以下内容(每次创建一个新的DBContext):


“我有一个异常”-确切地说是哪一个?请添加更多信息和您的确切异常。这可能会帮助您此异常=>“System.InvalidOperationException”,并且当我使用循环而不并行时,不会发生此情况
class Program
{
    static void Main(string[] args)
    {
       Parallel.For(0, 10, i =>
       {
          using(DbContextClass db = new DbContextClass()) {
               Category ct = new Category
               {
                    NameCategory = "SomeText"                           
               };
               db.Categories.Add(ct);
               db.SaveChanges();
          }
      });                           

      Console.ReadKey();
    }
}