【发布时间】: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