.NET库中是否有一个函数返回true或false,表示数组是null还是空?(类似于string.IsNullOrEmpty).
我在string.IsNullOrEmpty课堂上看了一下像这样的功能但看不到任何东西.
即
var a = new string[]{};
string[] b = null;
var c = new string[]{"hello"};
IsNullOrEmpty(a); //returns true
IsNullOrEmpty(b); //returns true
IsNullOrEmpty(c); //returns false
Run Code Online (Sandbox Code Playgroud) 所以我知道iQueryables被翻译成SQL语句,因此无法处理你可能放入where子句的所有可能的方法.
但这就是我要做的事情:
int[] alreadySelectedIds = ...
var subjects = Entities.NewInstance.Subjects.Where(x => Array.IndexOf(alreadySelectedIds, x.Id) == -1).ToList();
Run Code Online (Sandbox Code Playgroud)
阅读下面的帖子,我很高兴EF5能够翻译这个.
获取其键匹配id列表(或数组)的实体
使用LINQ从数组查询Int Ids
但是,我收到此错误:
LINQ to Entities无法识别方法'Int32 IndexOf [Int32](Int32 [],Int32)'方法,并且此方法无法转换为存储表达式.
谷歌搜索这个错误并没有给我太多帮助.
我也试过了
var newSubjects = Entities.NewInstance.Subjects.Where(x => alreadySelectedIds.Contains(x.Id)).ToList();
Run Code Online (Sandbox Code Playgroud)
无法创建类型为"System.Int32 []"的空常量值.在此上下文中仅支持实体类型,枚举类型或基元类型.
和
List<int> alreadySelectedIds = ...
Run Code Online (Sandbox Code Playgroud)
无法创建类型为"System.Collections.Generic.List`1"的空常量值.在此上下文中仅支持实体类型,枚举类型或基元类型.
我被困住了,我的大脑变得糊涂,超出了任何类型的优雅恢复的可能性.有人可以救我吗?