实体框架:无法转换类型错误

时间:2012-11-22 08:56:49

标签: c# entity-framework visual-studio-2012

使用EntityFramework,我创建了一个包含(SELECT)存储过程的实体模型。我添加了函数导入以使SP映射到复杂类型。这适用于返回多个记录的查询。

但是,对于只返回一条记录的查询,我目前收到此错误:

Cannot convert type 'System.Data.Objects.ObjectResult<DAL.FullResponse>' to 'DAL.FullResponse'  

我不知道多重性是问题,但除了问题查询将行标识符作为参数这一事实之外,没有任何关于它的强制执行单行结果(实际上当我运行导入时)函数向导它说我将返回一个复杂类型的集合

我也不知道这是否相关,但我在处理这个项目时切换了EntityFramework的版本。在尝试使用EF5引起的问题后,我切换到EF4(直到现在)没有问题。

相关代码: ASPX

<asp:DetailsView ID="DetailsView1" DataKeyNames="ResponseID" runat="server" 
     AutoGenerateRows="True" Height="250px" Width="350px" BorderWidth="1px" 
     BorderStyle="Dashed" BorderColor="YellowGreen" CellPadding="0" CellSpacing="7" 
     GridLines="None" />

CS

protected void ShowData()
{    
  int respID = Convert.ToInt32(Request.QueryString.Get(0));
  System.Diagnostics.Debug.Print("looking for ID: {0}", respID);

  var responseDetailed = context.GetFullResponse(respID);
  // get the data
  DetailsView1.DataSource = (FullResponse)responseDetailed;
}

从Page_Load

调用ShowData

有人能指出我解决这个问题的方法吗?我已经坚持了将近一天。

1 个答案:

答案 0 :(得分:0)

试试这个:

var responseDetailed = context.GetFullResponse(respID);
  // get the data
  DetailsView1.DataSource = (IEnumerable<FullResponse>)responseDetailed;
相关问题