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