我无法弄清楚我做错了什么我是这个实体框架的新手。我只是试图调用这个简单的存储过程,它返回一个或没有人。
这是我得到的错误:
无法隐式转换类型&System; System.Data.Objects.ObjectResult'到' Model.Person'
存储过程:
Create PROCEDURE [dbo].[GetPersonByID]
@personID int
AS
BEGIN
SELECT PersonID, FirstName, LastName, DOB, Notes, Reason, Diagnosis, DateEntered
FROM Person
WHERE PersonID = @personID
END
我更新了我的实体并在此处查看了存储过程。 我还右键单击了我的存储过程并添加了一个函数import并将其绑定到Person Entity。
代码:
private static Person GetPersonByID(int personID)
{
try
{
ModelEntities context = new ModelEntities();
return context.GetPersonByID(personID);
}
catch (Exception ex)
{
return null;
}
}
答案 0 :(得分:1)
函数GetPersonByID
返回ObjectResult
类型,您需要将其转换为您的模型。像这样:
var persons = context.GetPersonByID(personID).Select(p => new Model.Person
{
Name = p.Name,
Age p.Age,
... etc ...
});
return persons.SingleOrDefault();
答案 1 :(得分:0)
似乎SP结果集与您的实体之间存在不匹配。尝试更新与结果集相同的实体,反之亦然。
**如果您也可以提供实体代码,那将非常有帮助。这样我们就可以在我的测试环境中进行测试。