2014-01-22 41 views
2

这里的错误代码如下? 已经有一个与此命令关联的打开的DataReader,它必须先关闭。已经有一个与此命令相关的打开的DataReader,它必须先关闭linq

“执行命令定义时发生错误,请参阅内部异常以了解详细信息。”

var cat = from c in db.Question select c; 
foreach (Questions question in cat) { 
    Console.WriteLine("{0}", question.tittle); 
    Console.WriteLine("{0}", question.deskripsi); 
    Console.WriteLine("{0}", question.id_question); 
    **foreach (Categories p in question.Categories)** 
    { 
     Console.WriteLine("{0}", p.id_kategori); 
     Console.WriteLine("{0}", p.nama_kategori); 
    } 
} 
+0

这是Linq-to-SQL或Linq-to-Entities? – wdosanjos

+0

Linq to Entities – user3113811

回答

7

你可能没有启用多活动结果在您的配置文件设置(MARS)。 Here是为什么和怎样的一些细节,但它总是需要添加一个条目

"MultipleActiveResultSets=True" 

连接字符串。

然而,除了激活MARS,最好是急于负载Categories

from c in db.Question.Include(q => q.Categories) select c 

,因为在代码中foreach的每次迭代将执行一个查询,以延迟加载的类(也称为ñ +1问题)。

+0

当我更改时,错误“无法找到'MyStuck.Models.Category'的概念模型类型。” FYI(我手动创建模型) – user3113811

+0

好的,你的问题的例外已解决。现在你有一个新的问题。 –

+0

谢谢ndudd ... – user3113811

相关问题