我不知道LINQ会导致什么变量。 我想为结果LINQ创建变量为空。让我们看一下示例
int Id = 1;
IEnumerable<object> permission = null;
if(Id != 0) {
permission = from x in db.foo
join y in db.bar
on x.Id equal y.fkBar
select new {
Id = x.Id,
Name = y.Name }
permission = permission.where(a => a.Name = "xxxx")
} else {
permission = from x in db.foo
select new {
Id = x.Id,
Name = "" }
permission = permission.where(a => a.Name = "yyyyy")
}
return permission;
where clause
“对象”中的错误不包含“名称”的定义,并且找不到可接受的扩展方法“名称”,该方法接受“对象”类型的第一个参数
答案 0 :(得分:1)
我将创建一个以Id
和Name
作为属性的类,然后permission
将成为IEnumerable<YourClassName>
。
int Id = 1;
IEnumerable<YourClassName> permission = null;
if(Id != 0) {
permission = from x in db.foo
join y in db.bar
on x.Id equal y.fkBar
select new YourClassName {
Id = x.Id,
Name = y.Name }
} else {
permission = from x in db.foo
select new YourClassName {
Id = x.Id,
Name = "" }
}
return permission;
IMO,在这种情况下使用类是一种方法,并且比仅使用dynamic
或object
类型更安全。
答案 1 :(得分:0)
使用classpath 'com.google.gms:google-services:3.2.0'
而不是使用var permission
进行声明,