[英]Datagridview with linq to entities anonymous type
我正在努力了解如何從使用linq到實體的linq查詢填充的datagridview中更新SQL數據庫。
我從三個表中提取數據; 項目,任務和具有以下查詢的linkMissionItem:
var itemList = from x in me.LinkMissionItem
join i in me.items on x.itemID equals i.itemID
join m in me.Missions on x.missionID equals m.MissionID
where m.MissionNo == selectedMission
orderby i.categoryID, i.name
select new { i.itemID,
i.name,
x.Role,
i.Type.typeName,
i.Category.categoryName,
i.model,
i.serialNo,
i.Origin.originCountry,
i.cost,
x.Packaging };
我了解查詢提供了一個匿名類型,該匿名類型從所有三個表中提取了一些列,並將其綁定到datagridview,如下所示:
dgvMissionItems.DataSource = itemList.ToList();
使datagridview只讀。 順便說一句,我目前以編程方式更新“包裝”字段,沒有問題。
但是擁有datagridview的偉大之處在於可以通過編輯單個單元格來添加或更改其中的數據。 我需要允許用戶從linkMissionItem表中編輯Role字段。 如果我僅使用實體LinkMissionTable填充datagridview(使其可修改),則用戶的信息將不友好且不清楚。
我誤解了或正在以錯誤的方式來解決這個問題,並且迫切需要一些有關如何完成工作的建議。 我還無法在Internet上或有關該主題的書中找到任何東西。
您應該檢索整個實體(以及所需的相關實體),但是禁用DataGridView的AutoGenerateColumns
功能。 然后,僅定義要向用戶顯示的列,而不是通過將實體和網格的數據源重新包裝到新對象中來斷開它們之間的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.