![](/img/trans.png)
[英]Does 'Model' reads all the rows from the table when initialized? (performance)
[英]Select all rows from a model and have a nested json element as the Foreign key to another model with all rows selected
我希望控制器返回的JSON元素如下所示
{
"model": "Ford",
"make": "GT350R",
"dealerName": "Dallas Ford",
"location": {
"dealerName": "Dallas Ford",
"zip": 05700,
}
}
我似乎無法在我的控制器中正確獲取查詢。 我想從“汽車模型”中選擇所有行和每個元素,以及在位置表中有外鍵的位置。 然后,我想將屬於該location元素的所有行嵌入到sub元素中。 我認為我可能需要告訴我的模型有關外鍵的信息,但是因為我使用的是相同的屬性名,所以我認為Entity Framework 6可以為我做到這一點。
這是我正在嘗試的代碼,它將僅從Cars中選擇所有結果,而不會將位置顯示為嵌套元素。
var query = (from results in db.Cars
join location in db.Locations on results.DealerName equals location.Dealername
select results);
return Ok(query.ToList());
這是它為每個元素顯示的json
{
"model": "Ford",
"make": "GT350R",
"dealerName": "Dallas Ford",
}
這是我的模特
汽車模型
//......
[Key]
public string make { get; set; }
public string model { get; set; }
public Location Locations{ get; set; }//added this because someone in comments said to
public string dealerName { get; set; }
//........
位置模型
//......
[Key]
public string dealername{ get; set; }
public string Zip { get; set; }
//........
我認為代碼看起來應該是這樣,但我做的不正確。
var query = (from results in db.Cars
join location in db.Locations on results.DealerName equals location.Dealername
select new {
results = results;
results.location = location;
});
return Ok(query.ToList());
嘗試這個
var query = (from results in db.Cars
join location in db.Locations on results.dealerName equals location.dealerName
select new {
model = results.model, make = results.make, dealerName = results.dealerName, location = location }
);
return json(query.ToList());
使您的生活更簡單,並使用實體框架語法。 即使可以使用LINQ to SQL,使用起來也很冗長和麻煩。 所有你需要的是:
var query = db.Cars.Where(m => m.Locations.Any()).Include(m => m.Locations);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.