将没有FROM子句的SQL查询转换为LINQ

时间:2011-06-20 17:12:13

标签: linq linq-to-sql

如何将“select 1,2”之类的查询(即没有FROM子句)翻译成LINQ语句?
谢谢!

我需要获取一组用户组的权限。在SQL中它看起来像

SELECT * 
FROM Permission p 
INNER JOIN (SELECT GroupID 
            FROM [Group] 
            UNION ALL 
            SELECT 555) AS g 
ON (g.GroupID = p.GroupID) 

在我的情况下,我需要以编程方式添加某个代码而不是“555”。我不想为此编写特殊的SQL函数。

2 个答案:

答案 0 :(得分:3)

我猜你只想创建一个匿名类型

var anonymous = new { Column1 = 1, Column2 = 2 };

编辑 - 基于评论

根据您Select投影的内容,您可以执行以下简单操作:

如果是Int

var query = (from per in context.permissions
             select per).AsEnumerable()
             .Concat( new int[] { 1, 2 });

如果是“班级”

var query = (from per in context.permissions
             select per).AsEnumerable()
             .Concat(new CustomClass[] 
                      { 
                        new CustomClass()
                        {
                           Prop1= 1
                        },
                      }
                     );

您也可以将.Concat更改为.Union

答案 1 :(得分:1)

为什么你需要这个是linq?

var numbers = new int[] { 1, 2 };

我想

var numbers = Enumerable.Range(1,2);