添加新的存储过程,我的数据库,并在Visual Studio 2012来更新我的实体Frameowork模型后,我收到以下错误信息:数据读取器incompatiable错误
数据读取器与指定的'MyDb.usp_GetRolesForUser_Result'不兼容。类型'RoleType'的成员在数据读取器中没有相应的列,名称相同。
我不明白这个问题是如何发生的,因为模型是从数据库/存储过程生成的。我尝试从模型(存储过程,函数导入和复杂类型文件夹)中删除存储过程,然后从数据库刷新。
注意:这是由类库使用的,我在使用MVC Web应用程序测试类库时收到错误。我确定我已经重建了两个项目。
如果我从select语句中删除r.RoleType,,刷新模型并重建项目,那么没有错误。 RoleType是一个nvarchar(100),AppName是一个nvarchar(250)。
存储过程:
USE [MyDb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_GetRolesForUser]
@i_intId int = NULL
AS
SET NOCOUNT ON
BEGIN TRY
SELECT r.RoleId, r.RoleType, a.AppId, a.AppName
FROM [USER] u INNER JOIN [USERROLE] ur on u.UserId = ur.FkUserId
INNER JOIN [ROLE] r on ur.FkRoleId = r.RoleId
INNER JOIN [APPLICATION] a on r.FkAppId = a.AppId
WHERE u.UserId = @i_intId
ORDER BY a.AppName, r.RoleType
END TRY
BEGIN CATCH
/*error catching*/
END CATCH
RETURN
生成类:
public partial class usp_GetRolesForUser_Result
{
public int RoleId { get; set; }
public string RoleType { get; set; }
public int AppId { get; set; }
public string AppName { get; set; }
}
您的帮助:)感谢