2011-02-23 42 views
1

我从MVC2网站被转换为MVC3,虽然我设法得到它的工作,我该错误消息MVC3打破LINQ2SQL

“传递到字典的模型项的类型是“系统的困扰。 Data.Linq.SqlClient.SqlProvider + SingleResult`1 [NutritionLabel3.Models.sp_get_ingredientNutritionFoomasResult]”,但是这需要字典类型的模型项‘NutritionLabel3.Models.sp_get_ingredientNutritionFoomasResult’“。

此错误来自于模型层实现Linq2Sql数据层。此代码在MVC2中正常工作。我通过用新的Linq2Sql接口构建新的MVC3站点来验证这是否可重复,从而进行了大量测试。在控制器中LINQ2SQL呼叫的典型的实现将是这样的:

public ActionResult Index() 
    { 
     NutritionLabel3.Models.testDataContext dbContext = new Models.testDataContext(); 

     var nutritionData = dbContext.sp_get_ingredientNutritionFoomas(2, 1, 2); 

     return View(nutritionData); 
    } 

看来,隐式类型转换的消息是很神秘的。有没有人在MVC3中打过这场战斗?

任何帮助将不胜感激!

PATC

回答

1

尝试:

var nutritionData = dbContext 
    .sp_get_ingredientNutritionFoomas(2, 1, 2) 
    .Single();