0

我想在实体框架中执行以下工作,这些工作可以很容易地在 sql 中完成。

select 0 as employeeid, 'Select' as employeeName 
union

Select employeeid, employeeName from tblemployee where IsActive=true

请帮忙。

4

2 回答 2

4

也许是这样的:

UNION

var t= Enumerable
         .Range(0,1)
         .Select (e =>
                    new{employeeid=0,employeeName="Select"})
       .Union(
          db.tblemployee
          .Select (u =>
                   new {employeeid=u.employeeid,employeeName=u.employeeName} ));

UNION ALL

var t= Enumerable
         .Range(0,1)
         .Select (e =>
                    new{employeeid=0,employeeName="Select"})
       .Concat(
          db.tblemployee
          .Select (u =>
                   new {employeeid=u.employeeid,employeeName=u.employeeName} ));

其中 db 是数据上下文

于 2012-04-26T07:00:33.587 回答
0

假设它tblemployee被映射到一个名为的实体Employee并且您DbContext有一个Employee名为 s的集合Employees,您可以执行以下操作:

var allEmployeesPlusAnEmptyOne = 
    new[] { new Employee { EmployeeId = 0, Name = "Select" } }
    .Concat(dbContext.Employees.Where(e => e.IsActive));

...正如@Arion 所提到的,Union()如果您希望实体框架删除重复的对象,您可以使用,尽管我认为不会有任何重复对象。

于 2012-04-26T07:21:09.930 回答