让我说我有桌子
Shape
Id ShapeName
1 Circle
2 Square
3 Triangle
4 Pentagon
ShapeColour
Id ShapeId Colour
1 1 Red
2 1 Yellow
3 2 Green
4 3 Blue
5 3 Orange
在实体框架中,我有一个ShapeColours列表的形状对象作为该形状的属性,但我想要的是一个扁平列表,就好像我使用的是sql
DesiredObject
ShapeId ShapeColourId ShapeName Colour
1 1 Circle Red
1 2 Circle Yellow
2 3 Square Green
3 4 Triangle Blue
3 5 Triangle Orange
4 null Pentagon null
希望我的榜样足够。
答案 0 :(得分:1)
你可以像这样做一个双from
;
var query= from s in context.Shapes
from sc in s.ShapeColours.DefaultIfEmpty()
select new {ShapeId=s.Id,
ShapeColourId=sc.Id,
ShapeName=s.Name,
Colour=sc.Colour
};
答案 1 :(得分:1)
如果没有看到您的确切实体,我猜你想要这样的东西
var results = from shape in db.Shapes
from colour in shape.ShapeColours.DefaultIfEmpty()
select new
{
shape.ShapeId,
colour.ShapeColourId,
shape.ShapeName,
colour.Colour
};
使用EF,您可以使用通过外键关联的表的导航属性。要进行左连接,只需在导航属性集合上使用DefaultIfEmpty()
。