2021-01-03

一、需求,在界面上显示a表的数据,某字段需要显示的是b表的数据

二、表结构如下

a表如下

CREATE TABLE T_Sku (
Id int(11) NOT NULL AUTO_INCREMENT,
SkuId varchar(64) DEFAULT ‘’,
Code varchar(64) DEFAULT ‘’,
MeasurementsContractId int(11) DEFAULT 0,
PRIMARY KEY (Id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
b表如下

CREATE TABLE T_MeasurementsContract (
Id int(11) NOT NULL AUTO_INCREMENT,
Width decimal(10,2) DEFAULT ‘0.00’,
Height decimal(10,2) DEFAULT ‘0.00’,
Length decimal(10,2) DEFAULT ‘0.00’,
PRIMARY KEY (Id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

三、代码注意

1.model类的

(1)表a的

   [Required]
    public string SkuId { get; set; }

    [Required]
    public string Code { get; set; }

    public int MeasurementsContractId { get; set; }

    [ForeignKey("MeasurementsContractId")]

    public virtual T_MeasurementsContract measurementsContract { get; set; }

(2)表b的

    [Required]
    public decimal Width { get; set; }

    [Required]
    public decimal Height { get; set; }

    [Required]
    public decimal Length { get; set; }

    public virtual ICollection<T_Sku> skus { get; set; }

2.代码方法如下

public IEnumerable<T_Sku> GetSkuPage(int pageIndex, int pageSize)
{
using (FurnitureDbContext dbContext = new FurnitureDbContext())
{
IQueryable<T_Sku> list = dbContext.skus;
return list.OrderBy(a => a.ID).Include(a => a.measurementsContract).ToPagedList(pageIndex, pageSize);
}
}
需要注意的是Include必须的

3.Control类封装如下

public ActionResult Index()
    {

            int pageIndex = Convert.ToInt32(Request.QueryString["pageIndex"]);
            int pageSize = 10; //当记录数小于pagesize,分页控件将不出现
            var result = this.FurnitureService.GetSkuPage(pageIndex, pageSize);

       
        return View(result);
    }

4.界面调用如下

                           <tbody>
                                @foreach (var m in Model)
                                {
                                    var index = Model.IndexOf(m) + 1;
                                    <tr>
                                        <td>@index.ToString()</td>
                                        <td>@m.Code</td>
                                        <td>@m.measurementsContract.Length</td>
                                        
                                    </tr>
                                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值