如何在asp.net MVC中显示来自多个表的数据

时间:2017-07-18 22:22:13

标签: c# asp.net asp.net-mvc

我有三个表,称为材料组,材料类,材料类型。 Group和Class之间存在父子关系以及Class和Type,但Group和Type表之间没有直接关系。

以下是控制器的当前代码:

var ctbl_MaterialType = db.ctbl_MaterialType.Include(c => c.ctbl_MaterialClass).Include(c => c.stbl_Supplier)。ToList();

返回视图(ctbl_MaterialType);

我无法包含群组表,因为没有直接关系。即使我尝试下面的代码,但给了我错误:

var ctbl_MaterialType = ( from mt in db.ctbl_MaterialType join mc in db.ctbl_MaterialClass on mt.ID_ctbl_MaterialClass equals mc.ID_ctbl_MaterialClass
where mt.ID_ctbl_MaterialClass == mc.ID_ctbl_MaterialClass
join mg in db.ctbl_MaterialGroup on mc.ID_ctbl_MaterialGroup equals mg.ID_ctbl_MaterialGroup
where mc.ID_ctbl_MaterialGroup == mg.ID_ctbl_MaterialGroup
join ms in db.stbl_Supplier on mt.ID_stbl_Supplier equals ms.ID_stbl_Supplier
where mt.ID_stbl_Supplier == ms.ID_stbl_Supplier select new {
                                          MaterialGroup = mg.MaterialGroup,
                                          MaterialClass = mc.MaterialClass,
                                          MaterialType = mt.MaterialType,
                                          MaterialTypeAlias= mt.MaterialTypeAlias,
                                          Supplier = ms.Supplier
                                      });
return View(ctbl_MaterialType);

如何包含组表以便我可以在视图中使用它来显示??

1 个答案:

答案 0 :(得分:2)

创建一个ViewModel。 ViewModel是一个包装您需要发送到视图的所有其他模型的类。

示例:我将创建一个视图模型,其中包含学生列表和城市列表。

查看模型类:

import ee
ee.Initialize()
image = ee.Image('srtm90_v4')
geometry = ee.Geometry.Polygon([[[-113.64, 39.97], [-113.64, 38.13],[-109.42, 38.13],[-109.42, 39.97]]], None, False)
dict = image.reduceRegion(reducer=ee.Reducer.mean(), geometry=geometry, scale=1000)
featureCollection = ee.FeatureCollection([ee.Feature(None, dict)])
task = ee.batch.Export.table.toDrive(collection=featureCollection, description='foo', fileNamePrefix='foo', fileFormat='CSV')
task.start()
print task.status()

在你的行动中:

public class HomeIndexVM //(controllerName + actionName + VM)
{
    public List<Student> Students { get; set; }
    public List<City> Cities { get; set; }
}

在您看来:

HomeIndexVM viewModel = new HomeIndexVM {
    Students = context.Students.ToList();
    Cities = context.Cities.ToList();
};

return View(viewModel);

我希望你能明白这一点。快乐的编码。