【问题标题】:Need help using entities for ASP.NET MVC 2 framework使用 ASP.NET MVC 2 框架的实体需要帮助
【发布时间】:2010-07-22 00:25:07
【问题描述】:

我正在使用 C# 在 ASP.NET MVC 2 中创建一个站点。我设计了一个数据库,其中包含一堆具有多对多关系的表,类似于以下内容:

GrandParent - 多对多 - Parent

父级 - 多对多 - 子级

我使用实体框架来制作所有实体类,现在我正在处理存储库类中的一个函数,该函数添加了一个 GrandParent。

它尝试创建 Child,将其添加到 Parent,然后将 parent 添加到 GrandParent,然后使用命令将 GrandParent 添加到数据库中

entities.GrandParents.AddObject(newGrandParent);
entities.SaveChanges();

它在SaveChanges() 行崩溃并出现错误:

无法更新实体集 'JunctionPartentsChilds' 因为它 有一个 DefiningQuery 并且没有 元素存在于 ModificationFunctionMapping 元素到 支持当前操作。

编辑: 我可以通过删除自动生成的代码中的所有 DefiningQuery 元素来修复该错误,现在我在同一行上遇到了一个应该更具描述性的错误,但我仍然不知所措。

错误是:Invalid object name 'JunctionPartentsChilds',它会引发 UpdatingException。

有什么想法吗?由于多对多关系,您是否必须以特殊顺序添加到数据库中?

谢谢!!

【问题讨论】:

  • 听起来像是一个奇怪的数据库模式。 所有你的桌子有真正的 PK和FK吗?您是否使用任何视图或过程?你不应该用正确的模式得到DefiningQuery
  • 请添加/详细说明您的数据库架构以及它们之间的关系。如果您的架构是正确的,那么您添加的方式就是不正确的。乍一看,您似乎以错误的顺序/方式添加对象。

标签: c# mysql entity-framework asp.net-mvc-2


【解决方案1】:

如果您复制/粘贴此错误: 无效的对象名称“JunctionPartentsChilds”

问题可能是联结表名称中“Parents”的拼写错误

【讨论】:

    【解决方案2】:

    您的描述看起来像是一对多的关系。但是无论如何,请在此处发布您的代码片段,以查看您的语句中是否有错误。 再见托马斯 附言像这样格式化代码是一种绝妙的方法

    This is a line of code
    

    如果你点击带有 101 的按钮

    【讨论】:

      【解决方案3】:

      确保将 GrandParents 表作为主键(身份)并重建模型

      【讨论】:

        猜你喜欢
        • 2019-07-18
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多