【问题标题】:Updating my table via EF 4.0Entity Exception occured通过 EF 4.0Entity 更新我的表发生异常
【发布时间】:2011-02-08 07:40:11
【问题描述】:

我编写了这些代码来更新我的整个表重新排序我的作业序列号:


      protected void Update()
        {
            MyEntities ctx = new MyEntities ();

                var qry = ctx.MyTable.Where(q => q.workorder == "100001076").OrderBy(q => q.id);
                dataGridView1.DataSource = qry;
                int i = 0;
                foreach (var item in qry)
                {
                    i++;
                    item.jobseqno = i.ToString();
                    ctx.SaveChanges();

                }

        }

如何更新我的整个表格。我给新的号码集合jobseqno。但是发生了错误:

EntityException 未处理

在提供程序连接上启动事务时出错。详情见内部异常:

异常:不允许新事务,因为会话中还有其他线程在运行

【问题讨论】:

  • 嗯?那么内部异常是什么?
  • 内部异常:不允许新事务,因为会话中还有其他线程在运行
  • 并且应该在 foreach 循环之后调用 ctx.SaveChanges() 调用。

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


【解决方案1】:

查看this 博客文章,解决方案似乎是将您从 MyTable 获得的元素存储到一个数组中,而不是直接使用 IEnumerable 结果。试试这个:

var qry =
   ctx.MyTable
       .Where(q => q.workorder == "100001076")
       .OrderBy(q => q.id)
       .ToArray<MyTable>; // save it as a local array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多