I am working on Entity Framework Core 2.1 within .NET Core application. I have written stored procedure to get claims list via Context Query-Type which take three parameters where two of them are nullable Guid. It work fine as far no null parameter pass over but with passing null parameters, it throw error
https://learn.microsoft.com/en-us/ef/core/modeling/query-types
The parameterized query '(@UserVal uniqueidentifier,@ClientVal nvarchar(4000),@Consultati' expects the parameter '@ClientVal', which was not supplied.
public override IQueryable<GetSystemClaims> Execute()
{
public Guid UserId { get; set; }
public Guid? ClientId { get; set; }
public Guid? ConsultationId { get; set; }
var userParam = new SqlParameter("@UserVal", UserId);
var clientParam = new SqlParameter("@ClientVal", ClientId);
var consultationParam = new SqlParameter("@ConsultationVal", ConsultationId);
var userClaimsList = Context.Query<UserClaimsQueryView>().FromSql("EXECUTE dbo.ListUserClaims @userId=@UserVal, @clientId=@ClientVal, @consultationId=@ConsultationVal"
, userParam, clientParam, consultationParam);
return userClaimsList;
}
var userParam = new SqlParameter("@UserVal", UserId);
var clientParam = new SqlParameter("@ClientVal", SqlDbType.UniqueIdentifier);
clientParam.Value = (object)ClientId ?? DBNull.Value;
var consultationParam = new SqlParameter("@ConsultationVal", SqlDbType.UniqueIdentifier);
consultationParam.Value = (object)ConsultationId ?? DBNull.Value;
var userClaimsList = Context.Query<UserClaimsQueryView>().FromSql("EXECUTE dbo.ListUserClaims @userId=@UserVal, @clientId=@ClientVal, @consultationId=@ConsultationVal"
, userParam, clientParam, consultationParam);