使用 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
有人可以指出我解决这个问题的方法吗?我已经坚持了将近一天。