Visual studio 2010 如何通过c将联接表从实体数据模型4(.edmx)简单绑定到Gridview?

Visual studio 2010 如何通过c将联接表从实体数据模型4(.edmx)简单绑定到Gridview?,visual-studio-2010,entity-framework-4,ado.net,Visual Studio 2010,Entity Framework 4,Ado.net,我在MySql中有两个表: [人士] 拟人 名列前茅 姓氏 [电邮] 电子邮件ID 拟人 电子邮件地址 在VS2010中,我添加了一个新项ADO.NET实体数据模型。我连接到MySql并将两个表拖放到.edmx设计器中。伟大的它有关系和一切 现在,我想将这样的内容绑定到Gridview,而不使用EntityDataSource控件: 选择*从Person内部加入Person.PersonId=Email.PersonId上的电子邮件 如何使用现代方法以编程方式实现这一点?我注意到在我的.edm

我在MySql中有两个表:

[人士] 拟人 名列前茅 姓氏 [电邮] 电子邮件ID 拟人 电子邮件地址

在VS2010中,我添加了一个新项ADO.NET实体数据模型。我连接到MySql并将两个表拖放到.edmx设计器中。伟大的它有关系和一切

现在,我想将这样的内容绑定到Gridview,而不使用EntityDataSource控件: 选择*从Person内部加入Person.PersonId=Email.PersonId上的电子邮件


如何使用现代方法以编程方式实现这一点?我注意到在我的.edmx中,表具有导航属性,相关的表列在那里。我只是不知道使用它的概念和语法,因为我的技能仍然是基于DataSet SQL查询DataAdapter的。

您可以从以下内容开始:

var query = from x in Context.Persons         // Entity set on your context
            from y in x.Emails                // Navigation property
            select new PersonProjection       // Your custom class for flattened result  
                {
                    PersonId = x.PersonId, 
                    FirstName = x.NameFirst,
                    LastName = x.NameLast,
                    EmailId = y.EmailId,
                    EmailAddress= y.EmailAddress
                };

gridView.DataSource = query.ToList();
gridView.DataBind();    

谢谢这种语法和概念上下文和投影对我来说是新的。我得多读一些。