我使用Entity Framework Code First,我有三个表(例如):
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
这只是一个例子,实际上它更复杂。
实体Frmaework为我生成表,但表public class Motorbike()
{
public int Id {get; set;}
public string Producent {get; set;}
public Engine Motor {get; set;}
public Tire Tires {get; set;}
}
public class Engine()
{
public int Id {get; set;}
public int Power {get; set;}
public decimal Price {get;set;}
}
public class Tire()
{
public int Id {get; set;}
public int Size {get; set;}
public decimal Price {get; set;}
}
包含列:Motorbike
,Id
,Power
(其中仅存储number-id引擎,而不是整个对象)和{{ 1}}(其中只存储数字 - id轮胎,而不是整个对象)。
我知道如何插入数据 - 只需创建新的摩托车对象,保存到他的字段数据(对于Engine_Id
和Tire_Id
字段我保存整个对象不仅是id)并使用Engine
我的背景下的方法。
但是如何获取摩托车id为(例如)1的行的数据?
我尝试过这样的事情:
Tire
但我总是为.Add()
和List<Motorbike> motorbikes= new List<Motorbike>();
var list = _context.Motorbike.Where(p => p.Id == 1);
motorbikes.AddRange(list);
字段设置为空(字段Id和Producent正确填充)。
答案 0 :(得分:2)
使用Include
加载相关的实体,例如:
var list = _context.Motorbike
.Include(m=> m.Engine)
.Include(m=> m.Tire)
.Where(p => p.Id == 1);
答案 1 :(得分:1)
您正在寻找Include()
方法。
List<Motorbike> motorbikes = _context.Motorbike
.Include(p => p.Engine)
.Include(p => p.Tire)
.Where(p => p.Id == 1)
.ToList();