【发布时间】:2022-01-22 06:31:21
【问题描述】:
我希望能够在数据库中的某些内容为真时打印收据。例如,clawcutting,它应该打印“这是你的收据”+claw。但是当我在数据库中设置 ClawCutting 时,它仍然会打印“错误”。我真的不明白为什么它在数据库中找不到它?
public void DeleteFromService()
{
using (var db = new ApplicationDbContext())
{
double claw = 2.99;
double hair = 3.99;
double washing = 4.99;
Console.WriteLine("Add your booking number on your service");
Services s = new Services();
s.Id = Convert.ToInt32(Console.ReadLine());
if(s.ClawCutting == true)
{
Console.WriteLine("Here are your receipt" + claw);
}
else if(s.HairCut == true)
{
Console.WriteLine("Here are your receipt" + hair);
}
else if (s.Washing == true)
{
Console.WriteLine("Here are your receipt" + washing);
}
else
{
Console.WriteLine("Error");
}
db.Services.Remove(s);
db.SaveChanges();
}
}
【问题讨论】:
-
您的代码永远不会从数据库中加载任何内容。
Service是一个新对象,它的所有属性都将具有默认值。如果要加载特定项目,请使用var s=db.Services.Find(id);其中id要加载的项目的主键值 -
根据代码,您正在创建“s”,然后尝试读取标志的值;我没有看到使用数据库填充对象数据的任何函数或操作。
-
似乎您希望发生很多魔术,设置
Id属性会神奇地从数据库中为具有给定ID 的对象加载数据。这要求太多了。