【发布时间】:2012-04-30 15:45:19
【问题描述】:
我想在实体框架中执行以下可以很容易在sql中完成的工作。
select 0 as employeeid, 'Select' as employeeName
union
Select employeeid, employeeName from tblemployee where IsActive=true
请帮忙。
【问题讨论】:
我想在实体框架中执行以下可以很容易在sql中完成的工作。
select 0 as employeeid, 'Select' as employeeName
union
Select employeeid, employeeName from tblemployee where IsActive=true
请帮忙。
【问题讨论】:
可能是这样的:
与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 是数据上下文
【讨论】:
假设 tblemployee 被映射到名为 Employee 的实体,并且您的 DbContext 有一个名为 Employees 的集合 Employees,您可以执行以下操作:
var allEmployeesPlusAnEmptyOne =
new[] { new Employee { EmployeeId = 0, Name = "Select" } }
.Concat(dbContext.Employees.Where(e => e.IsActive));
...正如@Arion 提到的,如果您希望实体框架删除重复的对象,您可以使用Union(),尽管我认为不会有任何重复对象。
【讨论】: