0
我正在使用實體框架數據庫第一種方法。我正在爲存儲過程創建複雜類型,以便我可以在ASP.NET MVC應用程序中使用它。我需要創建複雜類型,因爲Entity Framework不會爲我創建它。我無法將複雜類型與創建的實體類進行映射。我得到一個錯誤映射到複雜類型(實體框架)給出錯誤
無法隱式轉換類型「System.Collections.Generic.List」到「廉政」
有人能告訴我是什麼問題?
存儲過程:
CREATE PROCEDURE [dbo].[spUserExists]
(@NetworkID varchar(20),
@Domain varchar(50),
@RoleID int)
AS
BEGIN
set nocount on
----------------------------------------
-- variables
----------------------------------------
-- error
declare @ErrorMessage nvarchar(2048), @ErrorSeverity int, @ErrorState int
----------------------------------------
-- exists
----------------------------------------
declare @UserExists int; set @UserExists = 0
begin try
select @UserExists = 1
where exists (Select up.NetworkID, up.Domain, ur.RoleId
from dbo.UserProfile up
inner join UserProfileRoleLink ur on up.UserProfileId = ur.UserProfileId
where up.NetworkID = @NetworkID
and up.Domain = @Domain
and ur.RoleId = @RoleID)
end try
begin catch
select
@ErrorMessage = dbo.GetErrorMessage('Exists', error_message(), object_schema_name(@@procid), object_name(@@procid), error_line()),
@ErrorSeverity = error_severity(),
@ErrorState = error_state();
raiserror(@ErrorMessage, @ErrorSeverity, @ErrorState);
return
end catch
select @UserExists as UserExists
END
實體類:
public class ValidUser
{
public Int32 UserExists { get; set; }
}
功能導入:
複雜類型:
映射和返回值:
public static System.Int32 UserValidate()
{
using (var db = new MCREntities())
{
var isValid = db.spUserExists(GetShortname(), GetDomain(), 1);
return Mapper.Map<List<ValidUser>>(isValid);
}
}
你可以描述'var isValid'它是什麼類型的?作爲錯誤消息它是一個列表你應該看看這個。 –
它是我相信的列表。 – Tom
ops,所以你需要創建一個自定義Map,爲此,或者我認爲它可以像'isValid.Select(x => Mapper.Map(x))一樣運行;'試試這個; –