C# 从第二级表(实体框架)获取数据
使用EF开发MVC5应用程序 我的数据库中有3个表。举个简单的例子,让我用这个C# 从第二级表(实体框架)获取数据,c#,asp.net-mvc,entity-framework,razor,C#,Asp.net Mvc,Entity Framework,Razor,使用EF开发MVC5应用程序 我的数据库中有3个表。举个简单的例子,让我用这个 汽车 身份证 卡纳姆 颜色 身份证 颜色名称 汽车颜色 龋齿 彩色 汽车和颜色是“主”表。CarsColors是一个包含各种组合的交叉引用表 目标:创建显示表的视图。对于每一行,它将显示车辆详细信息。将有一个“颜色”栏。在“颜色”列中,将有一个逗号圈定的颜色列表,由该车使用。(这是我问题的核心。)例如 汽车 颜色 起亚运动 红,蓝,绿 丰田卡默里 绿色,黑色 本田奥德赛 (没有) 您可以使用导航属
- 汽车
- 身份证
- 卡纳姆
- 颜色
- 身份证
- 颜色名称
- 汽车颜色
- 龋齿
- 彩色
汽车
颜色
起亚运动
红,蓝,绿
丰田卡默里
绿色,黑色
本田奥德赛
(没有)
您可以使用导航属性获取颜色名称:
public partial class CarsColors
{
public int CarId { get; set; }
public int ColorId { get; set; }
public virtual Car Car { get; set; }
public virtual Color Color { get; set; }
}
因此,拥有一个类型为CarsColors
的对象,您可以读取Color
名称,如下所示:
obj.Color.ColorName
如下所示的内容满足了您的需求:
var cars = dbContext.Cars
.Include(car=>car.CarsColors)
.GroupBy(car=>car.CarName)
.Select(gr=> new
{
CarName = gr.Key,
Colors = string.Join(",", gr.Select(car=>car.CarsColors.Color.ColorName))
});