【问题标题】:How to create a new/update existing related entity on Create/Update of the main entity如何在主实体的创建/更新上创建新的/更新现有的相关实体
【发布时间】:2014-09-08 15:17:08
【问题描述】:

我有一个名为 Employee 的对象和一个名为 EmpDescr 的对象。

EmpDescr 表有描述和富文本。 Employee 有 name、empid 和 descrid。

创建员工记录时,表单将显示empname 字段和descr textarea。在创建时,richtext 将首先作为新记录插入到empdescr 表中,id 将分配给employee 表中的descrid 字段,然后将创建员工记录。 在更新时,将更新 empdescr 表,然后更新员工表(如果需要)。

我怎样才能实现上述目标?我正在关注 mvc 4 和 5 以及 ef 5 和 6 的 asp.net 教程。现在,我将使用的确切版本无关紧要。 这些教程略有不同。即,要添加的现有课程的列表。在我的情况下,依赖对象将不存在,它将是一个字符串,而不是一个列表。我是 MVC 和 EF 的新手,在寻找可能的解决方案时遇到了问题。

我首先使用数据库,而不使用任何视图模型。

编辑: 在这里增加问题。 EmpDescr 更像是一个通用表,不仅与 Employee 相关。所以我称它为 RichText 表。 任何实体都可以有一个映射到该表的richtextid。由于上述原因,向 RichText 表添加 FK 是不可能的。

【问题讨论】:

    标签: asp.net-mvc entity-framework


    【解决方案1】:

    有几种不同的方法可以做到这一点。这是一种方法:

    -在您的数据库中为这两个表创建一个 FK 并更新您的 EDMX。如果您不能这样做,请在没有 FK 的情况下创建关联。

    -不要考虑什么时候更新,让 EF 自己解决。

    -在创建操作方法中使用 EmpDescr 对象作为模型。

    -通过在步骤 1 中创建的新 Employee 属性显示相关的 Employee 属性。这将允许 MVC 模型绑定器构建您的实体图。

    -在您的 post 方法中,不必担心保存 Employee,因为它已附加到您的 EmpDescr,它将自动保存。

    【讨论】:

    • 这看起来是正确且最简单的解决方案。唯一的问题是键的正确命名和映射。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2011-01-21
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多