26

我想使用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();

这似乎是在抱怨试图在 withUNIONIQueryable使用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."}

泰,莱伦。

4

1 回答 1

46

编辑:

好的,我找到了 LINQtoEF 中的 int.ToString() 失败的原因,请阅读这篇文章: Problem with conversion int to string in Linq to entity

这对我有用:

        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();

谢谢,我今天学到了一些东西:)

于 2013-02-22T10:55:02.497 回答