[英]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.