Я понял это, но не уверен, что это лучший способ справиться;
Если кто-то найдет лучший способ - то есть сделать это одним выражением, пожалуйста, ответьте !!!
Я отправил свои функции calc в методы;
var results = from Context1 in dmbl1.Table
join Context2 in dmbl2.batchLogs on Context1.BatchLog_ID equals Context2.pk
select new
{
CycleID = Context2.pk,
CreateDateTime = Context2.CreateDateTime,
StartTime = Context2.startTime,
endTime = Context2.endTime
};
foreach (var result in results)
{
BatchJob bj = new BatchJob();
bj.CreationDate = result.CreateDateTime;
bj.CycleID = result.CycleID;
bj.EndTime = result.endTime;
bj.StartTime = result.StartTime;
// From Here I called Methods that returned my counts
bj.TotalProcessed = Total(result.CycleID);
bj.ProcessedSuccess = Success(result.CycleID);
bj.ProcessedFailed = Failure(result.CycleID);
batchjobs.Add(bj);
}
private Int32 Success (int ID) {…
var success = (from blah in context1.table
where context1.ID == ID
&& context1.ItemStatus == "success"
select S context1.ItemStatus
).Count();
return success;
}