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

本文关键字:命令 关联 DataReader 有一个 | 更新日期: 2023-09-27 18:00:52

我对链接和实体框架还很陌生。显然,其他人也有和我一样的问题,这里对这个问题有很好的解释,这些都在理论上有意义。然而,我似乎无法获得正确的语法来解决我的问题,也无法充分理解它来决定什么是最佳选择。违规代码是:

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))处产生错误。我正在尝试删除数据库中某个特定用户的连接表中的所有条目。不确定还需要什么其他信息。请提前告知并表示感谢。

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

您需要将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>

像这样的东西。

相关文章: