首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC 3应用中的外键

MVC 3应用中的外键
EN

Stack Overflow用户
提问于 2012-02-21 08:35:36
回答 2查看 502关注 0票数 0

我创建了一个小型MVC应用程序。我有两张桌子:

  • movieLanguage - LanguageID (主键)、Language
  • Movie - MovieID (主键)、LanguageID(Fkey)、moviename等。

当我试图更新电影表时:

代码语言:javascript
运行
复制
var movie = movEntity.Movies.Single(a => a.MovieID == id);
TryUpdateModel(movie);
movEntity.SaveChanges();
return RedirectToAction("Index");

我收到一个错误:

属性'LanguageID‘是对象键信息的一部分,不能修改。

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-21 08:40:20

错误表示您试图复制LanguageID属性,这是不可能的,因为它用于标识数据库表中的行。

使用适当的视图模型可以避免此类错误。

请阅读我的博客文章:http://blog.gauffin.org/2011/07/three-reasons-to-why-you-should-use-view-models/

票数 0
EN

Stack Overflow用户

发布于 2012-02-21 13:13:41

正如jqauffin所说,您可以参考视频和可用的教程。对于您的问题,您正在试图覆盖"key“值,这就是错误的原因。

您可能正在执行以下任一项操作。

  1. 标识列不是自动递增的,但仍然是主键,您试图使用相同的PK插入另一行,这是不允许的
  2. 标识列是自动递增的,您正在尝试第二次插入/更新同一行。

尝试通过" new“操作符创建所需表的新实例,然后插入。因此每一行都被视为一个新记录。

请参考此博客获取示例代码片段:http://www.asp.net/mvc/tutorials/movie-database/create-a-movie-database-application-in-15-minutes-with-asp-net-mvc-cs

快乐学习

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9374394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档