Tyl*_*ler 15 .net entity-framework entity-framework-4
好的,这是场景.我有3张桌子.一个名为aspnet_Users的名为Categories,一个名为User_Categories的链接表.aspnet_Users和Categories都有主键(分别是UserId和ID).链接表只有两列:CategoryID和UserId,并且每列都有外键关系设置,并且我对User_Categories上的两列有唯一的键设置.这将在aspnet_Users表和Categories表之间建立多对多关系.我从这个数据库设置生成了我的实体edmx文件,一切看起来都很完美,几乎适用于所有操作.
我想要做的是从表单中添加一个新类别(它自己完美地工作),同时还将特定用户与新提交的类别相关联.当我尝试这样做时,我在主题行中得到错误.这是我用来尝试这个的代码(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");
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
Dre*_*kes 39
我假设完整的异常消息类似于:
无法更新EntitySet YourTableName,因为它具有DefiningQuery,并且ModificationFunctionMapping元素中不存在任何InsertFunction元素以支持当前操作.
如果您的数据库表没有定义主键,则会发生这种情况.
向表中添加主键(使用SQL Server Management Studio或其他),并.edmx从数据库更新模型.