首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linq到实体按多对多分组

Linq到实体按多对多分组
EN

Stack Overflow用户
提问于 2015-03-31 15:12:20
回答 1查看 718关注 0票数 0

我有三个实体,有许多/许多关系:

产品-< Products_vehicles >-车辆

1产品可以有许多车辆。

1汽车可以有多种产品

与所有许多/多个关系一样,products_vehicles类是隐藏的,通过EF显示为实体上的导航属性,所以我的类如下所示:

代码语言:javascript
运行
复制
public partial class product
    public int id { get; set; }
    public string part_name { get; set; }
    public virtual ICollection<vehicle> vehicles { get; set; }

 public partial class vehicle
{
    public int id { get; set; }
    public string make { get; set; }
    public string model { get; set; }
    public virtual ICollection<product> products { get; set; }

我可以很容易地得到产品和所有相关的车辆。

我希望根据汽车的型号对产品进行分组,这样我的输出就会如下所示:

产品编号:5 part_name:车门制造:福特车型: focus

产品编号:5 part_name:车门制造:萨博型号: 9-3

这个是可能的吗?

更新

为了更清晰起见,下面是一个例子:

假设我有一个叫做“帽子”的产品,它适用于5种不同的车辆:

  • 福特焦点1.6L
  • 福特嘉年华2L
  • 福特嘉年华1.6L
  • 福特蒙迪欧2L
  • 福特蒙迪奥1.8L

目前,我得到了一个集合的车辆列出所有5个以上的产品。

我要他们分组,第一,‘部分名称’(帽子),其次‘制造’和第三‘模式’。结果应该是:

代码语言:javascript
运行
复制
Bonnet > Ford, Fiesta 2L

         Ford, Fiesta 1.6L

Bonnet > Ford, Mondeo 2L

         Ford, Mondeo 1.8L

Bonnet > Ford, Focus 1.6L

这在SQL中是非常简单的,但是我很难用Linq来解决这个问题。

任何帮助都非常感谢

EN

回答 1

Stack Overflow用户

发布于 2015-03-31 16:02:40

我猜您想要的是检索已选择的平面记录:产品id、产品部件名称、汽车制造商和车辆型号。如果没有,请忽略这个答案。

代码语言:javascript
运行
复制
return dbcontext.products.SelectMany(
    p => p.vehicles.Select(
        v => new {
            product_id = p.id,
            part_name = p.part_name,
            make = v.make,
            model = v.model
            }
        )
    );

如果您不想重复产品数据(实际上是非常推荐的),那么您可以对嵌套的vehicles数组使用以下方法:

代码语言:javascript
运行
复制
return dbcontext.products.Select(
    p => new {
        product_id = p.id,
        part_name = p.part_name,
        vehicles = p.vehicles.Select(
            v => new { make = v.make, model = v.model }
        }
    );

dbcontext.products是与数据库中的产品相对应的DbSet;它在代码中可能被不同的调用。

干杯~!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29372069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档