Papi
Papi

Reputation: 555

In C#, using linq how do I pass list type parameters to a method?

I have a situation where I need to store data in list and just pass the relevant fields to my method, how can I do this, please see my code below.

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
    {
        IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
        using (EmbraceEntities context = new EmbraceEntities())
        {
            var validatedList = context.Supplier_Claim_Upload(claimsData.LineNunber, claimsData.TotalClaim);// i get an error over here
            return new List<Supplier_Claim_Upload_Result>(validatedList);
        }
    }

Upvotes: 0

Views: 896

Answers (1)

Jayesh Goyani
Jayesh Goyani

Reputation: 11154

Please try with the below code snippet. You got error because you tried to access property from collection in-place of object.

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
                lst.AddRange(context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim));
        }
    }
    return lst;
}

Update 1:

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
            var test = context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim);
            lst.AddRange(test.ToList<Supplier_Claim_Upload_Result>());
        }
    }
    return lst;
}

Update 2:

public static List<Supplier_Claim_Upload_Result> ExcludeFailedValidationRecords()
{
    IList<CRMSupplierClaimsData> claimsData = GetClaimsUpdateRecordsFromStaging();
    List<Supplier_Claim_Upload_Result> lst = new List<Supplier_Claim_Upload_Result>();
    using (EmbraceEntities context = new EmbraceEntities())
    {
        foreach (var item in claimsData)
        {
            var test = context.Supplier_Claim_Upload(item.LineNunber, item.TotalClaim);
            foreach (var childitem in test)
            {
                lst.Add(childitem);   
            }
        }
    }
    return lst;
}

Let me know if any concern.

Upvotes: 1

Related Questions