Как просто связать соединенные таблицы из Entity Data Model 4 (.edmx) с Gridview через c #? - PullRequest
0 голосов
/ 28 октября 2011

У меня есть две таблицы в MySql:

[лицо]
PersonId
NameFirst
NameLast

[Email]
EMAILID
PersonId
EmailAddress

В VS2010 я добавил новый объект, ADO.NET Entity Data Model. Я подключаюсь к MySql и перетаскиваю две таблицы в конструктор .edmx. Большой! У него есть отношения и все.

Теперь я хочу привязать что-то подобное к Gridview БЕЗ использования элемента управления EntityDataSource :
SELECT * FROM Person INNER Присоединиться к электронной почте ON Person.PersonId = Email.PersonId

Как мне сделать это программно, используя современный подход? Я заметил в моем .edmx, таблицы имеют «Свойства навигации», и соответствующие таблицы перечислены там. Я просто не знаю концепции и синтаксиса его использования, поскольку мои навыки все еще основаны на DataSet-SQL Queries-DataAdapter.

1 Ответ

0 голосов
/ 28 октября 2011

Вы можете начать с чего-то вроде этого:

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();    
...