Так как мне нужен запрос из 4 разных наборов сущностей (Medical, City, Region, MedicalServices), я создал viewmodel следующим образом;Linq to Entites Query не извлекает записи
public class MedicalCityRegionView
{
public Entity.Medical V_Medical { get; set; }
public Entity.City V_City {get;set;}
public Entity.Region V_Region{get;set;}
public Entity.MedicalService V_MedicalService{ get; set; }
}
И класс, который получает все записи из этих 4 таблиц следующим образом;
public class EntityHandler
{
public IQueryable<MedicalCityRegionView> GetAll(Entity.MedicalEntities MCR_View)
{
IQueryable<MedicalCityRegionView> result = from mID in MCR_View.Medicals
join cs in MCR_View.Cities on mID.CityFK equals cs.CityID
join reg in MCR_View.Regions on cs.RegionFK equals reg.RegionID
select new MedicalCityRegionView();
return result;
}
}
И эта часть находится по коду;
result = from mID in em.Medicals
join ms in em.MedicalServices on mID.MsMedicalFK
equals ms.ServiceID
join c in em.Cities on mID.CityFK equals c.CityID
join reg in em.Regions on c.RegionFK equals
reg.RegionID
where ms.ServiceID == SelectedMedicalService
&&
c.CityID == SelectedCity
select new Classes.MedicalCityRegionView();
listView_MainContent.DataSource = result.ToList();
listView_MainContent.DataBind();
И ошибка, которую я получаю;
An exception of type 'System.Web.HttpException' occurred in
System.Web.dll but was not handled in user code
Additional information: DataBinding:
'MedicalBootStrap.Classes.MedicalCityRegionView' does not
contain a property with the name 'MedicalID'.
Поскольку медицинская Entity действительно содержит MedicalID, я думал, что "общественность Entity.Medical V_Medical {получить, установить;}" будет достаточно.
И как вы видите на изображении, было создано 14 записей, которые верны, но они ноль;
Не могли бы вы просветить меня по этому вопросу?
@zimdanen aha, ok Я пытаюсь, спасибо – mctuna
Вам нужно привязать ваше представление к 'V_Medical.MedicalID', а не просто' MedicalID' –
Обратите внимание, что ваши запросы Linq - это просто запросы, пока вы не перечислите их, ToList() 'например. Только тогда они выполняются в хранилище данных. Это означает, что вы можете создать базовую часть своего запроса в одном месте, а затем применить фильтры по мере продвижения. Это уменьшит дублирование. –