0

ListLeagueLeaders()というメソッドにマップされたストアドプロシージャを渡そうとしていますが、ストアドプロシージャを呼び出すために自動生成されたメソッドObjectResult<ListLeagueLeaders_Result> ListLeagueLeaders()が必要ですObjectResult型これを修正するにはどうすればよいですか?辞書に渡されたモデル項目の型が 'System.Data.Objects.ObjectResult`1である

私はストアドプロシージャの代わりにLINQを使うことを考えましたが、この戦術に最後のチャンスを与えたいと思います。関連:LINQ to Entities instead of stored procedure?

にHomeController

public class HomeController : Controller 
    { 

     HockeyStatsEntities db = new HockeyStatsEntities(); 

     public ActionResult Index() 
     { 
      ViewBag.Message = "League leaders"; 
      { 
       return View(db.ListLeagueLeaders()); 
      } 
     } 

     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; 
     } 
    } 

Model1.Context.cs

public partial class HockeyStatsEntities : DbContext 
    { 

     public DbSet<Dim_Date> Dim_Date { get; set; } 
     public DbSet<Dim_Player> Dim_Player { get; set; } 
     public DbSet<Dim_Team> Dim_Team { get; set; } 
     public DbSet<Fact_Statistics> Fact_Statistics { get; set; } 
     public DbSet<Dim_Game> Dim_Game { get; set; } 

     public virtual ObjectResult<ListLeagueLeaders_Result> ListLeagueLeaders() 
     { 
      ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace.LoadFromAssembly(typeof(ListLeagueLeaders_Result).Assembly); 

      return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ListLeagueLeaders_Result>("ListLeagueLeaders"); 
     } 
    } 

ビュー:

@model NHLStats2.Models.ListLeagueLeaders_Result 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

答えて

1

あなたのビューでこのエラーが発生しています。コントローラーのアクションから戻ってきたものと同じオブジェクトタイプを参照する必要があります。例えば

あなたのコントローラのアクションからList<Foo>の型を返すしている場合、あなたは、あなたのビューが強く、私は私のポストを編集したList<Foo>またはIList<Foo>またはIEnumerable<Foo>

+0

に型付けすることができます。ビューを追加しました。NHLStats2.Models.ListLeagueLeaders_Resultに厳密にタイプされていますが、そうではありませんか?それは問題の根源ですか?もしそうなら、あなたはこれを何と置き換えるのですか? –

+0

'@model NHLStats2.Models.ListLeagueLeaders_Result'を' @model ObjectResult 'に置き換えてください。あなたのコードを見れば分かるはずです。 – tugberk

+0

@JFB上記の私のコメントを参照してください。 – tugberk

関連する問題