我在“Where”中使用实体框架遇到了一个奇怪的场景,我可以在其中搜索字符串但不是字符串,它是数组的一部分:
这有效:
string line = sr.ReadLine();
string[] row = line.Split(';');
string code = row[0];
TableObject to = db.TableObject.Where(e => e.property == code).FirstOrDefault();
但是,如果我尝试通过省略步骤字符串code = row[0]
并执行以下操作来简化代码:
string line = sr.ReadLine();
string[] row = line.Split(';');
TableObject to = db.TableObject.Where(e => e.property == (string) row[0]).FirstOrDefault();
我得到以下异常:
System.NotSupportedException: The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.
我发现异常抱怨看到的数组很奇怪,因为我专门将row[0]
数组转换为(string)
.
.ToString()
也没有解决问题。
我知道这没什么大不了的,但我很好奇为什么会这样。