【问题标题】:Have a model connect to multiple tables in MVC?有一个模型连接到 MVC 中的多个表吗?
【发布时间】:2014-04-23 05:11:31
【问题描述】:

我正在努力将功能连接到我的数据库的某些部分,我遇到的第一个奇怪问题是一种将员工添加到系统中的方法。

这不像制作员工模型那么简单,因为我的架构涉及更多。我的结构是这样的。我有连接到另一个表 all_users 的 AspNetUsers 表。然后表 all_users 连接到表 company.employees 和 employees.employees。

Employee.employees 包含所有内部员工,company.employees 包含所有外部员工。当我向系统添加新员工时,如果它是外部员工,它分布在 2 个表中:company.companies 和 Companies.employees。公司表包含公司名称和一些其他信息。 employees 表包含所有员工的信息。

如果我添加的是内部员工,他们的信息分布在 10 个不同的表中,包括员工表、电话号码表、电子邮件表、以前的工作等。

在我的添加员工页面上,我希望基本上有一个下拉菜单询问公司,如果他们选择我们的公司,则会显示一个表格,允许他们在所有表格中输入员工的所有信息。如果他们选择另一家公司,他们将获得允许他们输入员工信息的通用表格。

我一直在检查,但还没有真正看到任何简单的方法来完成此操作。

【问题讨论】:

  • 这些是 EF 代码优先模型吗?你能发布你的模型/课程吗?
  • 为什么不直接编写 SQL 视图将逻辑封装到单个 sql 对象中 - 然后您可以将视图导入模型中。
  • 这实际上是数据库优先。这是我的架构的图像(由于关系更改,现在略有更改,但非常相似)。 i.imgur.com/HmU1DDL.jpg
  • @CamBruce 但没有视图只允许我实际查看数据,不一定插入它?另外,我遇​​到了一个问题,因为我无法将信息传递到视图中,或者至少我还没有弄清楚。
  • 我在最近的一个项目中遇到了类似的问题,尽管我的架构没有你的那么复杂。我最终使用了存储库模式,将与我的表单对应的大型视图模型映射到我的域(数据库)模型,然后使用 Dapper 插入数据库。不一定容易,但它完成了工作。您还可以查看 AutoMapper。

标签: c# asp.net sql sql-server asp.net-mvc


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多