nischalinn Ответов: 1

Суммируйте значения из одного класса моделей и вычтите из общей суммы значение в другом классе моделей


У меня есть классы моделей для системы бюджетирования,

public class BudgetModels
{
	[Key]
	public int BudgetId { get; set; }		
	public string BudgetName { get; set; }
	public decimal BudgetTotalAmount { get; set; }
}


public class ProjectModels
{
	[Key]
	public int ProjectId { get; set; }		
	public string ProjectName { get; set; }
	public decimal AllocatedAmount { get; set; }
	
	[ForeignKey("BudgetId")]
	public BudgetModels Budget { get; set; } 
	public int BudgetId { get; `set; }
}


На странице моего представления(Create.cshtml) метода ProjectModelsController -> Create,

выше текстовое поле для AllocatedAmount у меня есть для отображения

текстовое поле только для чтения для значений "BudgetTotalAmount" и "оставшаяся сумма"


"Оставшаяся сумма" - это поле расчета (BudgetTotalAmount-AllocatedAmount из всех моделей проекта, где используется один и тот же BudgetId)

Как я могу показать эти два значения на странице просмотра "BudgetTotalAmount" и "оставшаяся сумма"?

тестовые данные::

BudgetId	BudgetName  	BudgetTotalAmount 
111			Road-const		15,00,000
112			Road-repair		25,00,000


ProjectId	ProjectName		AllocatedAmount		BudgetId
25			R-25			5,00,000			111
26			ABBS-56			2,00,000			111
27			ABBS-57			3,00,000			111

Now if I have to insert data for the next Project with BudgetId 111

then Remaining Amount would be (15,00,000 - (5,00,000 + 2,00,000 + 3,00,000)) = 5,00,000


Что я уже пробовал:

Я понятия не имею, как подойти к этой проблеме?

1 Ответов

Рейтинг:
0

Garth J Lancaster

Ну, проблема, с которой я могу столкнуться, заключается в том, что я не знаю, какие записи существуют, когда .. допустим, у вас есть эта запись

BudgetId	BudgetName  	BudgetTotalAmount 
111			Road-const		15,00,000
Если вы хотите "вставить данные для следующего проекта с помощью BudgetId 111, вы "получаете" /извлекаете все записи проекта
ProjectId	ProjectName		AllocatedAmount		BudgetId
25			R-25			5,00,000			111
26			ABBS-56			2,00,000			111
27			ABBS-57			3,00,000			111
а затем суммируйте выделенную сумму - тогда у вас есть две нужные вам суммы, да ? .. если у вас есть список этих записей, вы можете использовать LINQ для выбора по BudgetId 111 и sum AllocatedAmount


nischalinn

Спасибо тебе, Гарт, за твое предложение. Но как преобразовать это в код?