C#中继承

超越宝典汽配汽修管理系统

在控制器中执行相应的代码,以便更好的从数据库中获取需要的数据。

  • 使用linq 来查询多表数据。

  • 对应的‘进厂日期’ 和 ‘计划完结日期’ 需要添加上 Tostring()进行格式的转换。因为设计日期使用‘datetime’类型,如果不进行转换会导致获取不了需要的数据。

using QPQXMS.EntityClass;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using QPQXMS.Models;
namespace QPQXMS.Areas.MaintenanceBusiness.Controllers
{
    public class WorkshopManagementController : Controller
    {
        // GET: MaintenanceBusiness/WorkshopManagement
        
        Models.QPQX_MSEntities myModel = new Models.QPQX_MSEntities();

        //车间管理页面
        public ActionResult Index()
        {
            return View();
        }

        //查询维修委托单表
        public ActionResult SelectBusinessInfor(LayuiTablePage layuiTablePage) {
            // 连表查询
            List<ListWorkshop> listWorkshop = (from tbMaintainOdd in myModel.R_MaintainOdd //维修单表
                                               join tbCar in myModel.S_car on tbMaintainOdd.carID equals tbCar.carID //车辆信息表
                                               join tbServiceType in myModel.S_ServiceType on tbMaintainOdd.ServiceTypeID equals tbServiceType.ServiceTypeID //维修类型表
                                               select new ListWorkshop
                                               {
                                                   MaintainOddNumber = tbMaintainOdd.MaintainOddNumber,//维修单号
                                                   BusNumber = tbCar.BusNumber,//车牌号
                                                   VehiclModel = tbCar.vehiclModel,//车型
                                                   factoryTime = tbMaintainOdd.FactoryTime.ToString(),//进厂日期
                                                   plannedEndTime = tbMaintainOdd.PlannedEndTime.ToString(),//计划完结日期
                                                   ServiceTypeName = tbServiceType.ServiceTypeName,//维修类型
                                               }).ToList();
            //统计总条数
            int totalCount = listWorkshop.Count();
            //倒序 ,分页查询
            List<ListWorkshop> listWorkshopInfor = listWorkshop.OrderByDescending(m => m.MaintainOddID).Skip(layuiTablePage.GetStartIndex()).Take(layuiTablePage.limit).ToList();
            // 实例化对象
            LayuiTableData<ListWorkshop> layuiTableData = new LayuiTableData<ListWorkshop>
            {
                count = totalCount,
                data = listWorkshopInfor,
            };
            return Json(layuiTableData, JsonRequestBehavior.AllowGet);
        }

2.EntityClass,新建一个文件夹名为EntityClass用于存放自定义类,在里面添加‘实体类’。(有2种方式)

01.因为 ListWorkshop 实体类 继承 R_MaintainOdd表格的内容,所以我们可以省略书写 R_MaintainOdd 中的内容。因为这些都是可以全盘继承的。很大程度上减少了代码量的书写。查询数据时,我们只需要在‘实体类’中书写在R_MaintainOdd 表格中没有的数据即可。

02.如果不使用继承,那么就需要填写上所有需要的数据。代码量增加,不建议使用,但是可以了解一下。

总的来说,使用继承可以省略掉很多的步骤,有一些数据如果可以通过继承来获取,那么就没有必要在使用的时候再次来获取数据。类似于父子关系,儿子可以继承父亲财产。

注意:注释掉的数据是R_MaintainOdd 中的数据。

using QPQXMS.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace QPQXMS.EntityClass
{
    //ListWorkshop 实体类 继承 R_MaintainOdd表格的内容
    public class ListWorkshop: R_MaintainOdd  //维修单表。 : 继承的符号
    {
        //    //维修单号
        //    public string MaintainOddNumber { get; set; }
        //    //车牌号 
        public string BusNumber { get; set; }
        //    //车架号
        public string VIN { get; set; }
        //    //车型  
        public string VehiclModel { get; set; }
        //    //厂牌
        public string BrandName { get; set; }
        //    //车类 
        public string CarTypeName { get; set; }
        //    //引擎号 
        public string EngineNo { get; set; }
        //    //车主
        public string CarOwnerName { get; set; }
        //    //联系人 
        public string ContactMan { get; set; }
        //    //电话号码 
        public string PhoneNumber { get; set; }
        //    //地址 
        public string CarOwnerAddress { get; set; }
        //    //自编号  
        //    public string Tcount { get; set; }
        //    //进厂日期 ,日期转换格式
        public string ftime { get; set; }
        public string factoryTime
        {
            set
            {
                try
                {
                    DateTime ft = Convert.ToDateTime(value);
                    ftime = ft.ToString("yyyy-MM-dd HH:mm:ss");
                }
                catch (Exception)
                {
                    ftime = value;
                }
            }
            get
            {
                return ftime;
            }
        }
        //计划完结日期
        public string plannedEndTime 
        {

            set
            {
                try
                {
                    DateTime ft = Convert.ToDateTime(value);
                    ftime = ft.ToString("yyyy-MM-dd HH:mm:ss");
                }
                catch (Exception)
                {
                    ftime = value;
                }
            }
            get
            {
                return ftime;
            }
        }
        //    //接车员 
        public string StaffName { get; set; }
        //    //进厂里程
        //    public string FactoryMileage { get; set; }
        //    //油表    
        public string OilGauge { get; set; }
        //    //维修类
        public string ServiceTypeName { get; set; }
        //    //计划完结
        //    public DateTime? PlannedEndTime { get; set; }
        //    //工时折扣 
        //    public decimal? TimeDiscount { get; set; }
        //    //工配折扣 
        //    public decimal? WorkWithDiscount { get; set; }
        //    //管理费 
        //    public decimal? ManagementCost { get; set; }
        //    //合计金额
        //    public decimal? AmountInTotal { get; set; }
        //    //优惠金额
        //    public decimal? Coupon { get; set; }
        //    //实收金额
        //    public decimal? MoneyReceived { get; set; }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值