我有一个LINQ查询来从我的数据库中获取数据:
query.Select(b => b.BooleanValue.Value).Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)
这个查询给了我错误
Linq不能隐式地将类型'bool []'转换为'object []'.
我得到相同的错误与十进制值但具有文本值它一切正常.我找遍了所有在互联网上,我只找到那些有问题的人object来bool.
你知道如何(内LINQ转换select)decimal到object?
您有一个LINQ-to-Entities查询,您希望在服务器上执行该查询,并将结果作为对象数组返回.服务器上的查询提供了一系列值类型的不同值.
所以我们要做的是尽可能多地在服务器上执行查询,然后将结果转换为客户端上的普通序列,然后在客户端上打包值.所以:
object[] results = query
.Select(b => b.BooleanValue.Value) // on the server
.Distinct() // on the server
.AsEnumerable() // now we're on the client
.Cast<object>() // box each value to object on the client
.ToArray(); // put the results into an array of objects on the client
Run Code Online (Sandbox Code Playgroud)
完成.
query
.Select(b => b.BooleanValue.Value)
.Distinct()
.Cast<object>()
.ToArray();
Run Code Online (Sandbox Code Playgroud)
你可能需要这样做:
query
.Select(b => b.BooleanValue.Value)
.Distinct()
// execute query
.AsEnumerable()
// cast in memory
.Cast<object>()
.ToArray();
Run Code Online (Sandbox Code Playgroud)
只有引用类型的数组是共变体.这是一个有争议的特点.