的回到completedFilters.Select(GetFilterDetailDril)
轉換爲IQueryable的結果集
我們在GetFilterDetailDril
非常複雜的邏輯調用大量的功能。 在沒有調用函數的情況下選擇行中的所有選項是不可能的問題是我們希望稍後導出它,並且我們應該可以查詢它。 但是,如果我們調用函數,c#不能再使其可查詢。 有沒有解決方案?
這就是我回到
return filtersInDevelopment.Select(GetFilterDetailDrillDownModel)
這是功能
private FilterDevDetailDrillDownModel GetFilterDetailDrillDownModel(ALFilters alFilters)
{
alFilters = (alFilters.IsSample == 1 && alFilters.DestFilters.FirstOrDefault() != null)
? alFilters.DestFilters.FirstOrDefault() : alFilters;
var alFiltersDevelopment = alFilters.AlFiltersDevelopment.FirstOrDefault();
if (alFiltersDevelopment != null)
{
var repository = new FilterRepository();
var adt = alFiltersDevelopment.Adt ?? repository.GetAdt(alFilters);
var edt = alFiltersDevelopment.Edt ?? repository.GetEdt(alFilters);
var filterActiveMilestone = alFilters.FilterActiveMilestone;
var milestoneTargetDate = (filterActiveMilestone != null)
? filterActiveMilestone.TargetDate
: repository.GetFilterActiveMilestoneTargetDate(alFilters);
var firstDevMilestone = alFilters.FilterMilestones.FirstOrDefault(
x => x.MilestoneTypeId == FilterConst.START_DEVELOPMENT_MILESTONE);
var startDevTime = (firstDevMilestone != null)
? firstDevMilestone.MilestoneDate
: (DateTime?) null;
string milestoneNmae = (filterActiveMilestone != null)
? filterActiveMilestone.dic_MilestoneTypes.NameForReport
: string.Empty;
double remainingMilestoneTime = (milestoneTargetDate.HasValue)
? milestoneTargetDate.Value.Subtract(DateTime.Now).Days
: 0;
double delayedTime = (edt != null && adt != null)
? adt.Value.Subtract(edt.Value).Days
: 0 ;
var site = db.dic_AL_Sites.Find(alFilters.SiteId);
return new FilterDevDetailDrillDownModel
{
FilterId = alFilters.ID,
Filter = alFilters.FilterCode,
StartDevDate = startDevTime,
MilelstoneName = milestoneNmae,
RemainingMilestoneTime = remainingMilestoneTime,
MilestoneEstimatedFinishDate = milestoneTargetDate,
EstimatedDevelopmentTime = alFiltersDevelopment.Edt,
DelayedTime = delayedTime,
Site = (site != null) ? site.Site_Name : string.Empty
};
}
return null;
}
很多邏輯... 我想我可查詢返回但這不是iqueriable這個filtersInDevelopment.Select(GetFilterDetailDrillDownModel )是可枚舉的,不可能看到查詢:(
這麼多的編輯沒有人回答呢? – user3162954
請添加一些更多的代碼和有效信息,這些信息使我們對您的要求有所瞭解。 –
最後使用.AsQueryable()。 – 2014-01-06 10:39:46