0

Hello I have an error when I'am trying to select particular data from db Table in MVC 4 Application. Error code: The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.

Code causing that error:

protected Array getOddzialy(float x, float y, string[] TypyOddzialow)
    {
        Array ret = null;

        var oddzialy = from s in dbOddzial.Oddzialy select s;

        float maxX = x + (float)0.01;
        float maxY = y + (float)0.01;
        float minX = x - (float)0.01;
        float minY = y - (float)0.01;

        oddzialy = oddzialy.Where(s => s.LocX.CompareTo(maxX) < 0 && s.LocX.CompareTo(minX) > 0 && s.LocY.CompareTo(maxY) < 0 && s.LocY.CompareTo(minY) > 0);

        if (TypyOddzialow.Count() == 1)
            oddzialy = oddzialy.Where(s => s.Type.Contains(TypyOddzialow[0]));
        else if (TypyOddzialow.Count() == 2)
            oddzialy = oddzialy.Where(s => s.Type.Contains(TypyOddzialow[0]) || s.Type.Contains(TypyOddzialow[1]));
        else
            oddzialy = oddzialy.Where(s => s.Type.Contains(TypyOddzialow[0]) || s.Type.Contains(TypyOddzialow[1]) || s.Type.Contains(TypyOddzialow[2]));
        ret = oddzialy.ToArray();

        return ret;
    }

I search for answer but everything I found don't work. Please help.

1
  • Which line do you get your error on? Commented Nov 26, 2014 at 20:01

1 Answer 1

2

You will need to store the values of:

 var typyOddzialowFirst = TypyOddzialow[0]
 var typyOddzialowSecond = TypyOddzialow[1]
 var typyOddzialowThird = TypyOddzialow[2]

In separate local variables and use them that way in your linq queries.

 if (TypyOddzialow.Count() == 1)
        oddzialy = oddzialy.Where(s => s.Type.Contains(typyOddzialowFirst));
    else if (TypyOddzialow.Count() == 2)
        oddzialy = oddzialy.Where(s => s.Type.Contains(typyOddzialowFirst) || s.Type.Contains(typyOddzialowSecond));
    else
        oddzialy = oddzialy.Where(s => s.Type.Contains(typyOddzialowFirst) || s.Type.Contains(typyOddzialowSecond) || s.Type.Contains(typyOddzialowThird));
    ret = oddzialy.ToArray();
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.