You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Entity Framework C# 输入客户号查询Order表匹配记录开发求助

核心修改说明

  • 修正控制台提示文本,改为提示用户输入客户号
  • 使用LINQ的Where()方法对Order数据集按CustomerNo字段做过滤,仅匹配用户输入的客户号对应的记录
  • 额外补充无匹配记录的提示、输入格式错误的异常处理,提升程序健壮性

修改后完整代码

using System;
using System.Linq;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

class Program
{
    static void Main(string[] args)
    {
        // 输入异常处理
        try
        {
            using (var ctx = new Sales())
            {
                // 修改提示文本为输入客户号
                Console.WriteLine("请输入客户号: ");
                int customerNo = Convert.ToInt32(Console.ReadLine());
                
                // 新增Where筛选条件,仅查询对应客户号的订单
                var matchedOrders = ctx.Order.Where(o => o.CustomerNo == customerNo).ToList();
                
                if (matchedOrders.Count == 0)
                {
                    Console.WriteLine("该客户号无对应的订单记录");
                    return;
                }
                
                foreach (var m in matchedOrders)
                {
                    // 输出增加分隔符更易读
                    Console.WriteLine($"订单号:{m.OrderNo} 下单日期:{m.Date:yyyy-MM-dd} 客户号:{m.CustomerNo}");
                }
            }
        }
        catch (FormatException)
        {
            Console.WriteLine("输入的客户号格式错误,请输入数字");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"程序运行出错:{ex.Message}");
        }
    }
}

public class Sales : DbContext
{
    public Sales() : base("name=Sales") { }
    public IDbSet<Order> Order { get; set; }
}

[Table("Order")]
public class Order
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int OrderNo { get; set; }
    public DateTime? Date { get; set; }
    public int CustomerNo { get; set; }
}

关键逻辑说明

原代码直接遍历整个ctx.Order数据集,所以会输出全表订单。新增的Where(o => o.CustomerNo == customerNo)会在数据库层面生成带WHERE条件的SQL查询,仅返回对应客户号的订单记录,相比本地全量拉取后过滤性能更高。

内容的提问来源于stack exchange,提问作者DudeLostInCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:57:03