任何人都可以帮助我处理这段代码,我收到了以下错误消息:
“/”应用程序中的
服务器错误。ObjectStateManager中已经存在具有相同键的对象。现有对象处于修改状态。只有当对象处于添加状态时,才能再次将其添加到ObjectStateManager。描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。
异常详细信息: System.InvalidOperationException: ObjectStateManager中已经存在具有相同键的对象。现有对象处于修改状态。只有当对象处于添加状态时,才能再次将其添加到ObjectStateManager。
源错误:
Line 90: public void AddToTwitter(Twitter twitter)
Line 91: {
Line 92: base.AddObject("Twitter", twitter);
Line 93: }源文件: C:\Users\dell\Documents\Visual 2010\Projects\MvcApplication3\MvcApplication3\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();
}
}发布于 2011-12-27 21:49:42
每次遍历循环时,都会尝试添加相同的Twitter实例。
您需要在每次迭代中(在循环体内)创建一个新实例。
发布于 2011-12-27 21:56:05
@Slaks不需要释放每个实例,他会遇到堆栈溢出错误,请原谅pun..LOL
Models.Twitter tw = new Models.Twitter();
// do code... // tw.Dispose()或tw =空,如果它不实现IDisposable
https://stackoverflow.com/questions/8649625
复制相似问题