任何人都可以帮我解决此代码我收到此错误消息:
>'/'应用程序中的服务器错误。 ObjectStateManager中已存在具有相同键的对象。现有对象处于Modified状态。如果对象处于添加状态,则只能再次将其添加到ObjectStateManager。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。异常详细信息:System.InvalidOperationException:ObjectStateManager中已存在具有相同键的对象。现有对象处于Modified状态。如果对象处于添加状态,则只能再次添加到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 \ MvcApplication3 \ MvcApplication3 \ Models \ TwitterEntity.Designer.cs Line: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();
}
}
答案 0 :(得分:3)
每次进行循环时,您都尝试添加相同的Twitter
实例。
您需要在每次迭代中创建一个新实例(在循环体内)。
答案 1 :(得分:0)
@Slaks他不需要释放每个实例也会遇到堆栈溢出错误原谅pun..LOL
Models.Twitter tw = new Models.Twitter();
// do code...
// tw.Dispose()或tw = null如果它没有实现IDisposable