0
當我試圖通過LINQ查詢的結果爲MVC.Webgrid我收到錯誤(簡體):EF MVC的LINQ - 錯誤傳遞模型到MVC的WebGrid
The model item passed into the dictionary is of
type'System.Data.Entity.Infrastructure.DbQuery but
this dictionary requires a model item of type
'System.Collections.Generic.IEnumerable`1[MyModel.Models.MyMetric]'
這是的ActionResult失敗:
public ActionResult Test()
{
var metrics = db.Metrics
.GroupBy(c => c.Year)
.Select(g => new
{
Year = g.Key,
Q1 = g.Where(c => c.Quarter == 1).Sum(c => c.Value),
Q2 = g.Where(c => c.Quarter == 2).Sum(c => c.Value),
Q3 = g.Where(c => c.Quarter == 3).Sum(c => c.Value),
Q4 = g.Where(c => c.Quarter == 4).Sum(c => c.Value)
});
return View(metrics);
}
我假設,因爲我創造,我需要建立某種形式的新模型對原始數據的支點,但我不確定該怎麼做,在這種情況下。 (只是讓我的腳溼透EF和MVC)
任何想法?
TIA Ĵ
所以我需要創建MyMetric類?正如我目前擁有它,我只是返回「查詢」的結果作爲匿名類型。 –
是的,你必須創建MyMetrics類。這被稱爲視圖模型。您不能將匿名對象傳遞給視圖。 –
我在你的答案中丟失了一些東西。我試圖實現你的示例,仍然會得到相同的錯誤。 「MyMetric」如何使「指標」成爲IEnumerable? –