【发布时间】:2011-06-18 23:57:12
【问题描述】:
让我解释一下整个上下文:
我正在使用 ASP.NET MVC 2、EF4 (POCO)。
我尝试为我的应用创建一个通用存储库。
我在更新 多对多关系时遇到问题。
我有一个通过多对多表与其他项目相关的项目。在视图中,用户选择所需的类别,并将选择的 id 发送给控制器。
然后,Controller 查询 Category Repository,将其添加到主项:
item.Categories.Add(CategoriesRepository.Single(id);
但是,当我去存储库并尝试像这样保存时:
Entities.ApplyCurrentValues(entity);
Context.SaveChanges();
但是,我的实体的状态是Added。
然后,我无法保存我的实体 :(.
我该如何解决这个问题?
感谢您的回答。
我在View里有如下代码:
<%= Html.CheckBoxList("Categories", ((IEnumerable<Categories>)ViewData["Categories"]).ToDictionary(c => c.ID.ToString(), c => c.Name)
, Model.Categories.ToDictionary(c => c.ID.ToString(),c => c.Name )) %>
CheckBoxList 是一个 HTMLHelper。
我将 id 作为值放入视图中,因为我不知道其他方式可以放置然后从视图中获取此信息。
如何使用ObjectStateManager.ChangeRelationshipState 方法?
像这样? :
itemRepository.Db.ObjectStateManager.ChangeRelationshipState(item, item.Categories, "Categories", System.Data.EntityState.Modified);
我尝试这种方式,但它返回错误。
帮助!哈哈
【问题讨论】:
-
记住,答案是为了答案。如果您需要添加更多信息,请编辑您的问题。
标签: asp.net-mvc asp.net-mvc-2 entity-framework-4 many-to-many poco