updateTest(testValue) {
this.setValue(testValue)
}
我是linq的新手;请帮我如何在linq查询中使用union all来为两个变量存储结果。
在上面的代码中,我使用两个linq查询来获取结果,但我想将两个结果存储在其他变量中。请帮帮我。
答案 0 :(得分:1)
Linq中的UNION ALL等效于Concat
。
js.Data = data11.Concat(data2);
请参阅http://theburningmonk.com/2010/02/linq-choosing-between-concat-and-union/。
答案 1 :(得分:1)
当您将两个集合转换为列表时,您可以使用AddRange List of List来执行此操作。
var data11 = (from p in db.FeePlan.Where(d => d.AcademicYearID == dts.AcademicYearID && d.Active == true && d.IsEffectiveDates == false)
from fb in db.FeePlansToBranches.Where(x => x.FeePlanID == p.FeePlanID && x.BranchID == BranchID)
from b in db.Branches.Where(b => b.BranchID == fb.BranchID)
from fp in db.AssignFeeplanToClasses.Where(a => a.BranchID == BranchID && a.ClassID == ClassID && a.FeePlanID == p.FeePlanID)
from cl in db.Classes.Where(c => c.ClassID == fp.ClassID)
select new
{
p.FeePlanName,
p.FeePlanID,
b.BranchName,
cl.ClassName,
fp.AssignFeeplanToClassID,
fp.CreatedDate
}).Distinct().ToList().AddRange(
(from p in db.FeePlan.Where(d => d.AcademicYearID == dts.AcademicYearID && d.Active == true &&d.IsEffectiveDates == true)
from fb in db.FeePlansToBranches.Where(x => x.FeePlanID == p.FeePlanID && x.BranchID == BranchID)
from b in db.Branches.Where(b => b.BranchID == fb.BranchID)
from fp in db.AssignFeeplanToClasses.Where(a => a.BranchID == BranchID && a.ClassID == ClassID && a.FeePlanID == p.FeePlanID)
from cl in db.Classes.Where(c => c.ClassID == fp.ClassID)
where (DateTime.Now> p.StartDate && DateTime.Now < p.EndDate)
select new
{
p.FeePlanName,
p.FeePlanID,
cl.ClassName,
b.BranchName,
fp.AssignFeeplanToClassID,
fp.CreatedDate
}).Distinct().ToList());
答案 2 :(得分:1)
两种方式:
var data3 = data11.Concat(data2).ToList();
或者
var data3 = new List<object>(data1);
data3.AddRange(data2);
但由于您似乎不想要重复,您可能仍想使用union
:
var data3 = data11.Union(data2).ToList();
答案 3 :(得分:0)
var data11 = (from p in db.FeePlan.Where(d => d.AcademicYearID == dts.AcademicYearID && d.Active == true && d.IsEffectiveDates == false)
from fb in db.FeePlansToBranches.Where(x => x.FeePlanID == p.FeePlanID && x.BranchID == BranchID)
from b in db.Branches.Where(b => b.BranchID == fb.BranchID)
from fp in db.AssignFeeplanToClasses.Where(a => a.BranchID == BranchID && a.ClassID == ClassID && a.FeePlanID == p.FeePlanID)
from cl in db.Classes.Where(c => c.ClassID == fp.ClassID)
select new
{
FeePlanName = p.FeePlanName,
FeePlanID = p.FeePlanID,
ClassName = cl.ClassName,
BranchName = b.BranchName,
AssignFeeplanToClassID = fp.AssignFeeplanToClassID,
CreatedDate = fp.CreatedDate
}).ToList();
var data2 = (from p in db.FeePlan.Where(d => d.AcademicYearID == dts.AcademicYearID && d.Active == true && d.IsEffectiveDates == true)
from fb in db.FeePlansToBranches.Where(x => x.FeePlanID == p.FeePlanID && x.BranchID == BranchID)
from b in db.Branches.Where(b => b.BranchID == fb.BranchID)
from fp in db.AssignFeeplanToClasses.Where(a => a.BranchID == BranchID && a.ClassID == ClassID && a.FeePlanID == p.FeePlanID)
from cl in db.Classes.Where(c => c.ClassID == fp.ClassID)
where (DateTime.Now > p.StartDate && DateTime.Now < p.EndDate)
select new
{
FeePlanName= p.FeePlanName,
FeePlanID= p.FeePlanID,
ClassName= cl.ClassName,
BranchName= b.BranchName,
AssignFeeplanToClassID= fp.AssignFeeplanToClassID,
CreatedDate= fp.CreatedDate
}).ToList();
js.Data = data11.Concat(data2);