私はデータベースにアクセスするためにEntity Frameworkを使用していますが、エンティティを使用するメソッドにストアドプロシージャをマッピングするのは少し複雑すぎて、おそらくexacltlyを実行するのに適していないと思いました。私はLINQが新しく、ADO.NETだけで良いと思っていますか?ここで私は翻訳する必要があるSQLコードは次のとおりです。ストアドプロシージャの代わりにエンティティへのLINQ?
SELECT p.Player_id, p.Name, p.Position, SUM(s.Goals) AS goalsb, SUM(s.Assists) AS assistsb, SUM(s.Points) AS pointsb
FROM Dim_Player AS p INNER JOIN Fact_Statistics AS s ON s.Player_id = p.Player_id
GROUP BY p.Player_id, p.Name, p.Position
ORDER BY pointsb DESC, goalsb DESC
ストアドプロシージャのエンティティのマッピングでは、私はこのコードが書かれていた:
HockeyStatsEntities db = new HockeyStatsEntities();
public ActionResult Index()
{
ViewBag.Message = "League leaders";
{
return View(db.ListLeagueLeaders());
}
}
public ActionResult About()
{
return View();
}
private ICollection<ListLeagueLeaders_Result> ListLeagueLeaders()
{
ICollection<ListLeagueLeaders_Result> leagueLeadersCollection = null;
using (HockeyStatsEntities context = new HockeyStatsEntities())
{
foreach (ListLeagueLeaders_Result leagueLeader in
context.ListLeagueLeaders())
{
leagueLeadersCollection.Add(leagueLeader);
}
}
return leagueLeadersCollection;
}
をここで私は取得していますエラーです:
辞書に渡されたモデルアイテムのタイプは 'System.Data.Objects.ObjectResult`1 [NHLStats2.Models.ListLeagueLeaders_Result]'、 ですが、この辞書にはモデルが必要ですタイプ の「NHLStats2.Models.ListLeagueLeaders_Result」です。
しかし、私はこれが少し痛みであることを認識していますか? & * @ ...どうすれば別のより効果的な方法でこれを並べ替えることができますか?助けてくれてありがとう、本当に感謝しています。