如果我想将两个不同表中的 2 个值相乘,我应该在迁移中输入啥? ASP.NET MVC 实体框架
Posted
技术标签:
【中文标题】如果我想将两个不同表中的 2 个值相乘,我应该在迁移中输入啥? ASP.NET MVC 实体框架【英文标题】:What should I type in migration if I want to multiply 2 values from two different tables ? ASP.NET MVC Entity Framework如果我想将两个不同表中的 2 个值相乘,我应该在迁移中输入什么? ASP.NET MVC 实体框架 【发布时间】:2018-10-18 14:21:06 【问题描述】:这就是我想完成的“计算总动物维护成本。这是通过添加食物成本(食物成本 * 动物重量),住房成本获得的。”我不知道如何计算所有 (PetWeight from PetRescued Table)*(FoodCost from PetSpecies Table) 并将其插入到我的 MaintenanceCost 表中。
和
例如,我有 4 种宠物,分别是猫、狗、兔子和啮齿动物。宠物的 HousingCost 是 10,20,30,40。这是表 1。对于 PetRescued 表 2,我如何计算多少只猫/狗/.../...的 HousingCost 总和我在我的 PetRescued 数据库中,并将其插入到我的 MaintenanceCost 表中。
这是我的 PetRescued 实体,也是表格之一
public class PetRescued
public int Id get; set;
public string PetName get; set;
public int PetAge get; set;
public string PetGender get; set;
public double PetWeight get; set;
public DateTime? DateWhenRescued get; set;
public string PetBreedName get; set;
public PetSpecies PetSpecies get; set;
public byte PetSpeciesId get; set;
public PetSanctuary PetSanctuary get; set;
public byte PetSanctuaryId get; set;
这是我的 PetSpecies 实体,由 FoodCost 和我的第二张表组成
public class PetSpecies
public byte Id get; set;
public string SpeciesName get; set;
public double FoodCost get; set;
public double HousingCost get; set;
这是我的 MaintenanceCost 实体,用于存储计算结果
public class MaintenanceCost
public byte Id get; set;
public double TotalFoodCost get; set;
public double TotalHousingCost get; set;
public double TotalVetBillCost get; set;
【问题讨论】:
【参考方案1】:您需要的查询是这样的。它插入一个包含所有成本总和的实体。
INSERT INTO MaintenanceCost (TotalFoodCost,TotalHousingCost,TotalVetBillCost)
Values (
(SELECT SUM(PetRescued.PetWeight * PetSpecies.FoodCost FROM PetRescued INNER JOIN PetSpecies ON PetRescued.PetSpeciesId = PetSpecies.Id)),
(SELECT SUM(PetSpecies.HousingCost FROM PetRescued INNER JOIN PetSpecies ON PetRescued.PetSpeciesId = PetSpecies.Id)),
"the amount of TotalVetBillCost"
)
但是,这种方法违反了数据库的基本规则,即从不存储可以从数据库中存储的其他数据中检索的数据。另外,很明显,当其他两个表中的数据发生变化时,这个实体将不再有效。
【讨论】:
以上是关于如果我想将两个不同表中的 2 个值相乘,我应该在迁移中输入啥? ASP.NET MVC 实体框架的主要内容,如果未能解决你的问题,请参考以下文章