C# ObjectStateManager中已存在具有相同密钥的对象
任何人都可以帮助我处理此代码我收到以下错误消息: “/”应用程序中出现服务器错误。 ObjectStateManager中已存在具有相同密钥的对象。现有对象处于“修改”状态。如果对象处于已添加状态,则只能再次将其添加到ObjectStateManager。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.InvalidOperationException:ObjectStateManager中已存在具有相同密钥的对象。现有对象处于“修改”状态。如果对象处于已添加状态,则只能再次将其添加到ObjectStateManager 源错误:C# ObjectStateManager中已存在具有相同密钥的对象,c#,asp.net-mvc-3,entity-framework,C#,Asp.net Mvc 3,Entity Framework,任何人都可以帮助我处理此代码我收到以下错误消息: “/”应用程序中出现服务器错误。 ObjectStateManager中已存在具有相同密钥的对象。现有对象处于“修改”状态。如果对象处于已添加状态,则只能再次将其添加到ObjectStateManager。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.InvalidOperationException:ObjectStateManager中已存在具有相同密
Line 90: public void AddToTwitter(Twitter twitter)
Line 91: {
Line 92: base.AddObject("Twitter", twitter);
Line 93: }
源文件:C:\Users\dell\Documents\Visual Studio 2010\Projects\MVCAPApplication3\MVCAPApplication3\Models\TwitterEntity.Designer.cs行:92
代码是:
Models.TwitterEntities entity = new Models.TwitterEntities();
Models.Twitter tw = new Models.Twitter();
foreach (Hashtable item in (ArrayList)hs["results"])
{
foreach (DictionaryEntry subitem in item)
{
if (subitem.Key.ToString() == "from_user")
{
tw.from_user = (string)subitem.Value;
Response.Write("<br>" + (string)subitem.Value);
entity.AddToTwitter(tw);
}
if (subitem.Key.ToString() == "to_user")
{
tw.to_user = (string)subitem.Value;
Response.Write("<br>" + (string)subitem.Value);
entity.AddToTwitter(tw);
}
entity.SaveChanges();
}
}
Models.TwitterEntities实体=新模型.TwitterEntities();
Models.Twitter tw=新Models.Twitter();
foreach(在(ArrayList)hs[“results”]中的哈希表项)
{
foreach(字典项中的Entry子项)
{
if(subitem.Key.ToString()=“来自用户”)
{
tw.from_user=(字符串)subitem.Value;
写(“
”+(字符串)子项.Value);
实体AddToWitter(tw);
}
if(subitem.Key.ToString()=“to_user”)
{
tw.to_user=(字符串)subitem.Value;
写(“
”+(字符串)子项.Value);
实体AddToWitter(tw);
}
entity.SaveChanges();
}
}
每次循环时,您都试图添加相同的Twitter
实例
您需要在每次迭代中(在循环体内部)创建一个新实例。每次循环时,您都试图添加相同的
Twitter
实例
你需要在每次迭代中创建一个新实例(在循环体内部)。@Slaks他不也需要释放每个实例吗?他会遇到stackoverflow错误吗?请原谅这个双关语。..LOL
Models.Twitter tw = new Models.Twitter();
// do code...
//tw.Dispose()或tw=null如果不实现IDisposable@Slaks,他不需要释放每个实例吗?他会遇到堆栈溢出错误吗?请原谅这个双关语..LOL
Models.Twitter tw = new Models.Twitter();
// do code...
//tw.Dispose()或tw=null如果未实现IDisposable则应使用泛型集合。应使用泛型集合。