好的,这里是场景。我有3张桌子。一个叫aspnet_Users的叫做Categories,一个叫做User_Categories的链接表。 aspnet_Users和Categories都有主键(分别是UserId和ID)。链接表只有两列:CategoryID和UserId,并且为每列设置了外键关系,并且我为User_Categories上的两列设置了唯一的键设置。这在aspnet_Users表和Categories表之间建立了多对多的关系。我从这个数据库设置中生成了我的实体edmx文件,而且一切看起来都很完美,几乎适用于所有操作。实体框架4错误:无法更新实体集,因为它有一个定义查询
我想要做的是从表单中添加一个新的类别(它自己完美地工作),并且同时还将特定用户与新提交的类别相关联。当我尝试这样做时,我的主题行中出现错误。这里是我用来试试这个代码(ctx是我的实体上下文对象):
public ActionResult Create(Category category, Guid userId)
{
aspnet_Users user = ctx.aspnet_Users.SingleOrDefault(x => x.UserId == userId);
ctx.Categories.AddObject(category);
user.Categories.Add(category);
ctx.SaveChanges();;
return RedirectToAction("Index");
}
为什么不能正常工作?
如果你在一个视图而不是一个表上得到这个结果会发生什么! – Necronet 2010-10-29 16:33:03
@Necronet,对不起,我不能说。视图也可以定义键,对吗?你有没有定义你的观点? – 2010-10-30 00:35:55
是的,但EF似乎是自动设置我的钥匙(并随机太),我试图用XML编辑器编辑dmx,但每次我更新它设置关键马上回来,不知道为什么... – Necronet 2010-10-30 02:59:00