显示控件是DevExpress.XtraGrid.GridControl
如:gridControl1.DataSource = context.users; 一切正常,users为映射到库里一张表的实体
(应用ado.net entity技术)
但JOIN就不行了,
var query = from user in users
join book in books
on user.ID
equals book.ID
select new
{
user.ID,
user.NAME,
book.BookName,
book.NUM
};
gridControl1.DataSource = query ; //users,books分别为映射到库里一张表的实体
显示正常,数据也正是我想要的,但界面不能修改,不知道为什么?请求帮助!
select new { user.ID, user.NAME, book.BookName, book.NUM };
你的Linq查询得到的是一个匿名对象的集合,就比如你用GridControl绑定一个简单数组做数据源一样,都是无法编辑的。
谢谢你的解答!
那想要JOIN两个表后绑定到GridControl上去可编辑,怎么做?
@py_study: 其实你既然要用到JOIN,那说明你这两个实体间肯定是有关联的,那你在设计模型的时候,就应该指定它们的关联关系,这样绑定一个实体上去就可以了。
public class user{ //关联 public EntityCollection<book> BorrowedBooks{get;set;} } public class book{ //对应上面的关联 public user User{get;set;} }
最后你绑定一个实体就可以了,比如你上面的那个绑定可以变成下面的:
gridControl1.DataSource = context.users;
然后设置一下要显示的列:
希望可以帮助到你。