[英]Linq to Entites Query does not retrieve the records
由於需要從4個不同的實體集(醫療,城市,地區,醫療服務)進行查詢,因此創建了如下的視圖模型;
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; }
}
並從以下四個表中獲取所有記錄的類;
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'.
由於醫療實體確實包含MedicalID,因此我認為“ public Entity.Medical V_Medical {get; set;}”就足夠了。
正如您在圖像上看到的,已經創建了14條記錄,這些記錄是正確的,但它們為空;
您能把這個問題告訴我嗎?
看到截圖確認了我的懷疑...
嘗試
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()
{ V_Medical = mID,
V_City = cs,
V_Region = reg };
和
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()
{ V_Medical = mID,
V_City = c,
V_Region = reg,
V_MedicalService = ms};
那應該為您提供14個實例中的數據。
對於其余部分,Medical.ID或Medical.MedicalID可以通過MedicalCityRegionView.Medical.Id到達,而不能直接在MedicalCityRegionView上訪問。
據我所知,生成僅具有偽get的實體; 組; 該方法不足以檢索與數據庫數據相對應的數據。 我認為您可以通過在實體的定義中映射至少必要的字段來解決此問題。
我希望這會成功,祝您好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.