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>
我已經編輯我的職務。我已經添加了這個視圖,因爲你可以看到它對於'NHLStats2.Models.ListLeagueLeaders_Result'是強類型的,不應該這樣嗎?這是問題的根源嗎?如果是這樣,你會用什麼替換它? – 2011-12-17 21:20:54
用'@model ObjectResult'替換'@model NHLStats2.Models.ListLeagueLeaders_Result'。通過查看你的代碼,它應該儘可能地工作。 –
tugberk
2011-12-17 21:33:14
@JFB在上面看到我的評論。 – tugberk 2011-12-17 21:39:35