【问题标题】:How to find true value in database?如何在数据库中找到真正的价值?
【发布时间】: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 的对象加载数据。这要求太多了。

标签: c# entity-framework-core


【解决方案1】:

您的代码永远不会从数据库中加载任何内容。 Service 是一个新对象,它的所有属性都将具有默认值。如果要加载特定项目,请使用 DbSet.Find where id 要加载项目的主键值

var id=Convert.ToInt32(Console.ReadLine());
var s=db.Services.Find(id);
if(s == null)
{
    Console.WriteLine($"No service with {id} was found");
    return;
}

这两种方法将从数据库中删除服务,因此请确保仅在您真正需要时才使用它们:

db.Services.Remove(s);
db.SaveChanges();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    相关资源
    最近更新 更多