已有一个与此命令关联的打开DataReader

时间:2014-04-29 17:05:08

标签: c# entity-framework asp.net-mvc-4

我对链接和实体框架相当新。显然,其他人也遇到了同样的问题,对问题here有很好的解释,这些解释在理论上都是有道理的。但是,我似乎无法获得正确的语法来修复我的问题,我也不能理解它足以决定什么是最佳选择。违规代码是:

public void ClearAllFilesFromUser(Guid userID)
{
    using (DBEntities db= new DBEntities())
    {
        var filez = (from p in db.Files select p);
        aspnet_Users user = (from p in db.aspnet_Users
                             where p.UserId == userID
                             select p).First();

        foreach (var file in filez)
        {
            if (file.aspnet_Users.Contains(user))
            {
                file.aspnet_Users.Remove(user);
            }
        }
        db.SaveChanges();
    } 
}

代码在if (file.aspnet_Users.Contains(user))处产生错误。我试图删除特定用户的数据库中的联结表中的所有条目。不确定需要什么其他信息。请提前通知并表示感谢。

1 个答案:

答案 0 :(得分:0)

您需要在连接字符串中添加MultipleActiveResultSets=true;

 <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Elazig-20140311114227;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Elazig-20140311114227.mdf;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient" />
  </connectionStrings>

像这样。