簡體   English   中英

在ASP.NET MVC4 LINQ中執行語句時出錯

[英]Error while executing statement in ASP.NET MVC4 LINQ

您好,當我嘗試從MVC 4應用程序中的數據庫表中選擇特定數據時出現錯誤。 錯誤代碼: LINQ to Entities不支持LINQ表達式節點類型'ArrayIndex'。

導致該錯誤的代碼:

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;
    }

我搜索答案,但發現的所有內容均無效。 請幫忙。

您將需要存儲以下值:

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

在單獨的局部變量中,並在linq查詢中以這種方式使用它們。

 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM