我想使用LINQ
查询从我的数据库表中选择2个元素,我看到一个使用UNION
的示例我没有太多经验,但我认为这可能是我需要的但是我得到一个我无法解决的错误,我不确定它是否可修复。所以这是我的疑问:
IList<String> materialTypes = ((from tom in context.MaterialTypes
where tom.IsActive == true
select tom.Name)
.Union(from tom in context.MaterialTypes
where tom.IsActive == true
select (tom.ID))).ToList();
似乎抱怨尝试在UNION
IQueryable
IEnumarebale
上使用ToString()
。我尝试通过添加(tom.ID).ToString
这样的问题来解决这个问题 - Visual-Studio-2010
导致清除{"LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression."}
中的错误下划线但在运行时我得到:
{{1}}Ty,Leron。
答案 0 :(得分:36)
编辑:
好的,我发现为什么LINQtoEF中的int.ToString()失败了,请阅读这篇文章: Problem with converting int to string in Linq to entities
这对我有用:
List<string> materialTypes = (from u in result.Users
select u.LastName)
.Union(from u in result.Users
select SqlFunctions.StringConvert((double) u.UserId)).ToList();
关于你的,它应该是这样的:
IList<String> materialTypes = ((from tom in context.MaterialTypes
where tom.IsActive == true
select tom.Name)
.Union(from tom in context.MaterialTypes
where tom.IsActive == true
select SqlFunctions.StringConvert((double)tom.ID))).ToList();
谢谢,我今天学到了一些东西:)