在DataGridView的選定行背後檢索Linq實體的優雅/正確的方法是什麼? 我填充我的DataGridView這樣的形式Load事件:從Linq到Linq的DataGridView中選定的行後面的實體
this.Database = new MyAppDataContext();
var userList = from c in this.Database.Users
orderby c.LastName
select c;
this.gridUserList.DataSource = userList;
然後,在形式的DoubleClick事件我這樣做:
int userPK = Convert.ToInt32(this.gridUserList.CurrentRow.Cells["colUserPK"].Value);
var user = (from c in this.Database.Users
where c.UserPK == userPK select c).First() ;
//Do something with user object
看起來應該有一個更獲得雙擊用戶行的優雅方式。
你的問題是什麼?你是否遇到異常?你想用用戶對象做什麼?請與我們分享更多信息。 – 2010-07-08 06:54:43
我看到的問題是我無法以乾淨,強類型,面向對象的方式到達選定的用戶對象。一種理論上改進的方法是在表單上擁有一個UserList屬性,該屬性是Linq查詢對象。即「this.UserList = from this.Database.Users .....」等,並將網格數據源設置爲this.UserList。然後在DoubleClick事件中,可以說「var User = UserList.CurrentEntity」或「var User = UserList.SelectedEntity」或類似的東西。無論如何,我是Linq的新手,仍在學習和研究,並尋找意見。 – 2010-07-08 13:25:16