Автоматически заполнять элементы управления из запроса контекста Entity Framework - PullRequest
1 голос
/ 14 января 2011

У меня есть следующий код:

IList<AccountMember> query;

using (DBEntities context = new DBEntities())
{

    Guid ModifyUser = new Guid(Session["ModifyUser"].ToString());

    query = (from AccountMember member in context.AccountMember
         where member.AccountMemberId == ModifyUser
         select member).ToList();


    foreach (AccountMember member in query)
    {
    //this.FirstName.Text = member.FirstName;
    ControlCollection controls = this.Controls;

    foreach (Control control in controls)
    {
        if (control is TextBox)
        {
        TextBox x = (TextBox)control;
        x.Text = member.FirstName; // want to replace the .FirstName with the TextBox ID value somehow
        }
    } // foreach (Control control in controls)
    } // foreach (AccountMember member in query)

} // using (DBEntities context = new DBEntities())

В строке, содержащей x.Text = member.FirstName; Я хотел бы заменить элемент FirstName на строку идентификатора TextBox. Так что я могу просто зациклить и заполнить свои текстовые поля автоматически

1 Ответ

2 голосов
/ 14 января 2011

Вы пытались создать bindingsource, а затем привязать свои текстовые поля к этому.

Во время выполнения вы можете затем связать свою сущность EF с источником привязки, и ваши элементы управления будут автоматически заполнены.

Хороший пример можно найти здесь - он показывает привязку к сетке, но принцип аналогичен для привязки к отдельным элементам управления.

Дополнительно для извлечения одногосущность, которую вы можете сделать:

AccountMember member = context.AccountMember
                              .Single(m => m.AccountMemberId == ModifyUser);

// Bind the fetched entity to the bindingsource and hence to the UI controls
// At runtime this is all that is needed to update the controls, as long as 
// you have set things up at design time.
myBindingSource.DataSource = member;
...