我尝试使用ASP.Net MVC和Entity Framework构建一个简单的应用程序。
我有3张桌子:
- 工人:很清楚。
- ExtraHours:它与一名工人有关。每个ExtraHour都与工人有关系。创建ExtraHour记录时,也应创建新的付款记录。它有一个名为WorkerId的字段。
- 付款:向工人付款。每笔付款都与工人有关系。付款可能与ExtraHour有关,但不是必需的。它有一个名为WorkerId的字段。它没有关于ExtraHours的任何字段,因此没有办法将一笔付款与ExtraHour记录联系起来,我不希望这样。
醇>
首先我们创建一个工人。我们可以创建一个关于工人的ExtraHour。这很简单,基本上我使用的是ExtraHour模型。当我尝试添加付款记录时,事情变得复杂了。因为PaymentAmount的计算方式如下:
payments.PaymentAmount = user.ExtraHourSalary * extraHour.Amount;
所以我没有 PaymentAmount 的任何表单字段。我需要通过获取用户信息(user.ExtraHourSalary)来计算。这是两个问题:
- 我应该使用什么样的模型?就像我说的,ExtraHour和Payment之间没有直接关系,但是当我创建ExtraHour记录时,应该创建新的付款记录。
- 我应该在什么控制器中添加此记录?是的,它是一个OverHour记录,但我也需要创建一个付款。我应该创建一个新的ViewModel包括所有这些吗?这对我来说似乎很奇怪,因为它被称为ViewModel。
- 我应该"在创建方法或类似内容中添加payments.PaymentAmount = user.ExtraHourSalary * extraHour.Amount;" 代码到控制器代码?
我很困惑,我希望它足够清楚,谢谢。