Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从第二级表(实体框架)获取数据_C#_Asp.net Mvc_Entity Framework_Razor - Fatal编程技术网

C# 从第二级表(实体框架)获取数据

C# 从第二级表(实体框架)获取数据,c#,asp.net-mvc,entity-framework,razor,C#,Asp.net Mvc,Entity Framework,Razor,使用EF开发MVC5应用程序 我的数据库中有3个表。举个简单的例子,让我用这个 汽车 身份证 卡纳姆 颜色 身份证 颜色名称 汽车颜色 龋齿 彩色 汽车和颜色是“主”表。CarsColors是一个包含各种组合的交叉引用表 目标:创建显示表的视图。对于每一行,它将显示车辆详细信息。将有一个“颜色”栏。在“颜色”列中,将有一个逗号圈定的颜色列表,由该车使用。(这是我问题的核心。)例如 汽车 颜色 起亚运动 红,蓝,绿 丰田卡默里 绿色,黑色 本田奥德赛 (没有) 您可以使用导航属

使用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))
                    });